【特惠】26考研
红包
【考研】专业课HOT
26考研
【MBA】在职考研
【规划】择校备考
【报录比】查询
计划
【真题】全套解析
资料
【申硕】同等学力
预备
【大纲】5500词汇
免费
【在线】英语测评
免费
【大纲】最新大纲
精
扫码加入训练营
牢记核心词
学习得礼盒
今天新东方在线考研频道小编为各位考生整理了“2023考研计算机编程题知识点之排序--归并排序”,相关内容。专业、实用的计算机考研复习备考内容,能使大家更有效率的掌握相关知识点,避免盲目学!更多计算机考研复习精彩内容,时刻关注新东方在线考研频道!
2023考研计算机编程题知识点之排序--归并排序
归并排序(Merge Sort)法是将两个(或两个以上)有序表合并成一个新的有序表。即把待排序序列分为若干个子序列,每个子序列是有序的,然后再把这些有序子序列合并为整体有序序列。
归并操作的过程如下:
①申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列。
②设定两个指针(或者数组的下标),初位置分别为两个已经排序序列的起始位置。
③比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置。
④重复步骤③,直到某一指针到达序列尾。
⑥将另一序列剩下的所有元素直接复制到合并序列尾。
归并排序的过程就是将一个待排序的序列分为若干部分,然后使用上述归井操作进行排序。可见归并排序算法的复杂度是O(nlog(n))。
问题:使用归并排序对n个整数进行升序排序。
参考代码:
int arrTmp[100]; //定义一个临时的数组
/*
*归并两个分段的结果,两个分段是数组中的[low,mid]以及[mid+1,high]中的元素
*/
void Merge(int arr[],int low, int mid, int high) {
int i=low, j=mid+1,k=high; //i、j、k分别指向待归并的两段以及临时数组
while(i<=mid && j<=high){
if(arr[i]<=arr[j]){ //此为稳定排序的关键,不能用arr[i]
arrTmp[k++]=arr[i++];
} else {
arrTmp[k++]=arr[j++];
}
}
//如果前半段没有完全被复制到临时数组中,则需要复制剩下的部分
whi1e(i<=mid){
arrTmp[k++]=arr[i++];
}
//如果后半段没有完全被复制到临时数组中,同样也需要复制剩下的部分
while(j<=high) {
arrTmp[k++]=arr[j++];
}
//写回原数组
for(i=low;i<=high;i++){
arr[i]=arrTmp[i];
}
}
/*
*归并排序算法代码:arr为待排序的数组,low为低位序号,high为高位序号
*/
void MergeSort(int arr[],int low, int high) {
if(low
int mid=(low+high)/2; //计算中间位置
MergeSort(arr, low, mid); //对数组中的前半段进行排序
MergeSort(arr, mid+1,high); //对数组中的后半段进行排序
Merge(arr,low,mid,high); //归并两个分段排序后的结果
}
}
以上就是关于“2023考研计算机编程题知识点之排序--归并排序”的内容,更多计算机考研复习精彩内容,请持续关注新东方在线考研频道!
【计算机】资料这里有↑↑↑
添加班主任领资料
添加考研班主任
免费领取考研历年真题等复习干货资料
推荐阅读
今天新东方在线考研频道小编为各位考生整理了2026考研计算机知识点盘点:编码与调制,相关内容。专业、实用的计算机考研复习备考内容,
来源 : 网络 2025-06-20 07:06:00 关键字 : 考研计算机复习指导
今天新东方在线考研频道小编为各位考生整理了2026考研计算机知识点盘点:通信概念,相关内容。专业、实用的计算机考研复习备考内容,能
来源 : 网络 2025-06-20 07:06:00 关键字 : 考研计算机复习指导
今天新东方在线考研频道小编为各位考生整理了2026考研计算机知识点盘点:分层结构,相关内容。专业、实用的计算机考研复习备考内容,能
来源 : 网络 2025-06-19 07:04:00 关键字 : 考研计算机复习指导
今天新东方在线考研频道小编为各位考生整理了2026考研计算机知识点盘点:计算机机器字长,相关内容。专业、实用的计算机考研复习备考内
来源 : 网络 2025-06-19 07:04:00 关键字 : 考研计算机复习指导
今天新东方在线考研频道小编为各位考生整理了2026考研计算机知识点盘点:DMA方式,相关内容。专业、实用的计算机考研复习备考内容,能
来源 : 网络 2025-06-19 07:04:00 关键字 : 考研计算机复习指导
资料下载
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
新东方在线考研资料合集
下载方式:微信扫码,获取网盘链接
目录:
1.2013-2023年近10年政数英真题及解析PDF版(新东方)
2.2013-2023年专业课考试历年真题及解析PDF版
3.24考研复习备考资料大合集:大纲+备考资料+词汇书+考前押题+自命题
资料介绍:
1.2013-2023年近10年政数英真题及解析PDF版(新东方)
、
2.2013-2023年专业课考试历年真题及解析PDF版
3.24考研复习备考资料大合集
3.24考研复习备考资料:考研大纲
3.24考研复习备考资料:政数英备考资料+自命题真题
------------------
考研备考过程中,尤其是专业课部分,参考往年的考试真题,对于我们的复习有更好的帮助。北京大学考研真题资料都有哪些?小编为大家进行了汇总。
北京大学考研真题资料-公共课
北京大学考研真题资料-专业课
以上就是关于“北京大学考研真题资料下载(历年汇总)”的整理,更多考研资料下载,请关注微信获取下载地址。
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
阅读排行榜
相关内容