归并排序代码详解(注释)

注:源代码和图片来自 合肥工业大学 计算机学院 方帅老师的课件

侵权必删

 

#include<iostream>
using namespace std;
//按照标号看
void merg(int a[], int lmin, int rmin, int rmax)/*10、以最后四个数为例,lmin为数组首地址,记为左标记,rmin为右边第一个地址,即2的地址,记为右标记,rmax为数组末尾的地址。*/
{
	int temp;//11、定义一个可以临时变量储存值
	while (lmin <= rmin - 1 && rmin <= rmax) //11、在未分解成单个数字且数组排序未完成时
	{
		if (lmin == rmin) return;//12、已被分解成单个数字,跳出函数
		if (a[lmin] <= a[rmin]) lmin++;/*13、如果左标记的值小于右标记,则左标记后移,值不作任何变化(等于也是),进入下一轮。*/
		else//14、此时左标记的值大于右标记
		{
			temp = a[rmin];//15、将右标记的值储存在临时变量中
			for (int k = rmin; k >= lmin; k--)//16、新建一个k来复制右
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值