稳定的和不稳定的排序算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

稳定的和不稳定的排序算法
⾸先看结论:不稳定的排序算法:快、希、选、堆。

(找到⼯作就可以选⼀对美⼥来玩了)
不稳定:相同元素的相当对顺序被改变
快速排序:快速排序的⽐较和交换是跳跃进⾏的,所以不稳定 O(nlogn)
希尔排序:希尔排序是按照不同的步长对元素插⼊排序,第⼀次插⼊排序时是有序的,但在不同的插⼊排序过程中,相同元素的顺序可能被打乱 O(nlogn)
选择排序:举个例⼦,序列5 8 5 2 9,我们知道第⼀遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是⼀个稳定的排序算法。

在⼀趟选择,如果当前元素⽐⼀个元素⼩,⽽该⼩的元素⼜出现在⼀个和当前元素相等的元素后⾯,那么交换后稳定性就被破坏了。

(n*2)
堆排序:不稳定
稳定:
冒牌排序:依次的⽐较和交换,不会改变两个相等元素的位置 O(n*2)
插⼊排序:从未排序序列中选择最⼩的⼀个放在已排序数组中,不会改变相对位置O(n*2)
归并排序:分治法,O(nlogn)
桶排序: O(n*1.3)。

相关文档
最新文档