排序:(一)排序算法小常识

1 算法稳定性

假定在待排序的记录序列中,存在多个具有相同的关键字的记录;
若经过排序,这些记录的相对次序保持不变;
即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;
否则称为不稳定的。

算法稳定性的意义

  • 如果只是简单的进行数字的排序,那么稳定性将毫无意义。
  • 如果排序的内容仅仅是一个复杂对象的某一个数字属性,那么稳定性依旧将毫无意义(所谓的交换操作的开销已经算在算法的开销内了,如果嫌弃这种开销,不如换算法好了?)
  • 如果要排序的内容是一个复杂对象的多个数字属性,但是其原本的初始顺序毫无意义,那么稳定性依旧将毫无意义。
  • 除非要排序的内容是一个复杂对象的多个数字属性,且其原本的初始顺序存在意义,那么我们需要在二次排序的基础上保持原有排序的意义,才需要使用到稳定性的算法。

例如:
  要排序的内容是一组原本按照价格高低排序的对象,如今需要按照销量高低排序,使用稳定性算法,可以使得想同销量的对象依旧保持着价格高低的排序展现,只有销量不同的才会重新排序。(当然,如果需求不需要保持初始的排序意义,那么使用稳定性算法依旧将毫无意义)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一. 写在前面 要学习算法,“排序”是一个回避不了的重要话题,在分析完并查集算法和常用数据结构之后,今天我们终于可...
    Leesper阅读 7,259评论 0 40
  • 本文首发于我的个人博客:尾尾部落 排序算法是最经典的算法知识。因为其实现代码短,应该广,在面试中经常会问到排序算法...
    繁著阅读 9,997评论 3 118
  • Waht 以下这种场景,总有一款适合你,或许还养成了习惯,某个时刻固定做某件事。 早上大家到了办公室之后,大家都在...
    夜猫子谭娟阅读 2,773评论 0 2
  • 在本科阶段,我的辅导员老师不止一次地向我们强调:“统计学一定要好好学!这是以后从事预防医学相关职业的‘制胜法宝’!...
    薄凉生阅读 2,586评论 0 1
  • 《一》 穿上婚纱 你是世间最美的新娘 成为了焦点 《二》 在你的身边 不奢求原谅我 真想静静地守护你 《三》 只有...
    我爱吃任何鱼阅读 1,456评论 0 2