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之间的整数。

    桶排序

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

  • 相关阅读:
    jQuery之元素操作及事件绑定
    JS中常遇到的浏览器兼容问题和解决方法
    九九乘法表
    全选复习
    css基本知识
    js数组
    Spark常见错误问题汇总
    被问懵逼的Kafka面试题
    被问懵逼的数仓面试
    Flink模拟项目: 订单支付实时监控
  • 原文地址:https://www.cnblogs.com/whyandinside/p/2558722.html
Copyright © 2011-2022 走看看