哪种排序最稳定
终极管理员 知识笔记 161阅读
排序内容的稳定性和稳定性有什么区别?
答:2、如果排序的内容仅仅是一个复杂对象的某一个数字属性,那么稳定性依旧将毫无意义(所谓的交换操作的开销已经算在算法的开销内了,如果嫌弃这种开销,不如换算法好了? ) 3、如果要排序的内容是一个复杂对象的多个数字属性,但是其原本的初始顺序毫无意义,那么稳定性依旧将毫无意义。
排序算法的稳定性是什么?
答:排序算法 的 稳定性 通俗地讲就是能保证 排序 前两个相等的数据其在序列中的先后位置顺序与 排序 后它们两个先后位置顺序相同。 再简单具体一点,如果A i == A j,Ai 原来在 Aj 位置前, 排序 后 Ai仍然是在 Aj 位置前。
堆排序为什么不稳定?
答:堆排序的话,也会存在跟上面一样的交换最大值的位置会导致不稳定.例如有大堆 8 8 6 5 2.先选出第一个最大值8,放最末尾.此时就不稳定了.因为第二个8就跑它前面去了. 这两种算法都属于交换排序. 冒泡是通过不停的遍历,以升序为例,如果相邻元素中左边的大于右边的则交换.碰到相等的时就不交换保持原位.所以是稳定的.当然如果你非得吃饱了撑着了,在碰到相等的时也交换下,那肯定变成不稳定的算法了.
什么是排序?
答:排序 (Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列。