关于Mergesort的一个小问题

来源:3-2 归并排序法的实现

Mapple_

2019-01-31

bobo老师您好,我想问下您,没有进行
if(arr[mid]>arr[mid+1])
优化操作的归并排序在进行合并的时候,假如现在有2个元素相等了 else if(aux[i-l]<aux[j-l])
{ arr[k]=aux[i-l];
i++
}
else
{ arr[k]=aux[j-l];
j++;
}
进行这个代码比较的时候,是不是不稳定了?我觉得应该改成 else if(aux[i-l]<=aux[j-l]) //此处加了一个等号
{
arr[k]=aux[i-l];
i++;
}
else
{ arr[k]=aux[j-l];
j++;
}
不知道我的想法对不对。麻烦老师指导,谢谢!

写回答

1回答

liuyubobobo

2019-01-31

你是对的,我在这里的编码没有特别的考虑稳定性。


抱歉!继续加油!:)

0
1
Mapple_
非常感谢!
2019-01-31
共1条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11223 学习 · 1617 问题

查看课程