zoukankan      html  css  js  c++  java
  • 排序算法总结

    堆排序

    基于比较的排序,由于不管之前的输入是否有序,都需要建堆、维护堆,所以复杂度总是O(nlgn),不具有稳定性。

    冒泡排序

    基于比较的排序,时间复杂度为O(n2)。优点是具有稳定性,原来在前面的还在前面。

     

    插入排序

    最好情况是输入就是按照升序排列,需要n-1次比较;最坏情况就是输入按照降序排列,需要进行n(n-1)/2次比较。平均时间复杂度是O(n2)。因此非常不适合大数据量的排序。

    选择排序

     

    快速排序

    算法复杂度是O(nlgn)。如果选择pivot总是选择最大或者最小的元素,会导致最坏情况,运行时间为O(n2),为了避免出现这种情况,可以最输入数据进行随机化,从而避免最快情况。

    基数排序

    给定n个d位数,每一个数位都可以取k种可能的值,基数排序能以O(d(n+k))的时间进行排序。

    计数排序

    假设n个输入元素中的每一个都是介于0和k之间的整数。

    桶排序

    输入的数据符合均匀分布时,可以以线性时间运行。

  • 相关阅读:
    vue中封装公共方法,全局使用
    element-ui table 最后一行合计,单元格合并
    vuex 进行封装
    vue生命周期
    (转)no terminal library found
    解压
    (转)bash: make: command not found
    (转)linux 批量删除文件命令
    python
    Session
  • 原文地址:https://www.cnblogs.com/whyandinside/p/2558722.html
Copyright © 2011-2022 走看看