• 排序算法的稳定性及其汇总


    1.时间复杂度为O(n^2)排序的稳定性:原序列中相同的值,在排好顺序之后,能够保证原来的相同的值相对顺序保持不变。在一个算法中,如果所有相同值,在排完序之后,值的顺序不会被打乱,那么这个算法就是稳定的。如果会被打乱,那么这个排序就不具备稳定性。 如果在相等情况下也进行交换,那么冒泡排序就不是稳定的了。  冒泡排序可以实现为稳定的,插入排序可以实现为稳定的,选择排序不能实现稳定的算法。

    2.时间复杂度O(nlogn)算法。归并排序可以做到稳定性,遇到相等的情况下拷贝左边的,保证右边的想等值不会跑到右边就可以做到稳定性。快速排序不能实现稳定性。堆排序做不到稳定性。

    3.工程中的综合排序算法。

      (1)在工程中,会先判断数组中的值是基础类型(基础类型会用快排)还是对象类型(就需要用到比较器,使用归并排序),但是如果数组很短,不选选择快排,也不会选择归并,会直接用插入排序。

    4.有关排序问题的补充:

      (1)归并排序的额外空间复杂度可以变成O(1),但是非常难。

    5.认识比较器的使用。

      

      

  • 相关阅读:
    C#微信开发文档
    XML相关操作
    css基本样式总结
    CSS选择器及其优先级
    Java学习之路(七)
    G2( bizCharts ) React 绘制混合图例
    G2 绘制混合图例 demo
    python 前后端分离 简单的数据库返回接口
    nginx 跨域
    react-router-dom
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/10499307.html
Copyright © 2020-2023  润新知