zoukankan      html  css  js  c++  java
  • 各类算法比较

     

    1 时间复杂度比较

    1)  从平均时间复杂度来考虑:直接插入排序、冒泡、直接选择是三种简单的排序方法,为O(N2),快速、堆、二路归并排序为O(nlog2n),希尔排序介于两者之间。

    2)  从最好的时间复杂度考虑:直接插入排序和冒泡为O(n),其他的最好情况平均相同。

    3)  从最坏的时间复杂度考虑:快速排序为O(n2),直接插入、冒泡、希尔平均相同,但系数大约增加一倍,所以运行速度降低一半,最坏情况对直接选择、堆、归并影响不大。

    2 空间复杂度比较

    归并的空间复杂度最大,为O(n),快速为O(log2n),其他为O(1).

    3 从稳定性比较

    直接插入、冒泡、归并稳定;直接选择、希尔、快速、堆不稳定。

    4 从算法简单性比较

    直接插入、冒泡、直接选择都是简单方法,希尔、快速、堆、归并都是改进型方法。

    5就平均性能而言,快速排序最省时间,但最坏情况下的时间性能不如堆排序和归并排序;就堆排序和归并排序而言,当n较大时,归并排序所需时间最省,但需要的辅助空间最多。

    6 从稳定性看,时间复杂度为O(n2)的排序是稳定的,而时间复杂度较好的是不稳定的。

  • 相关阅读:
    【LVS 】NAT方式实现过程
    【 LVS 】类型及算法
    [ 总结 ] RHEL6/Centos6 使用OpenLDAP集中管理用户帐号
    [ 手记 ] 关于tomcat开机启动设置问题
    [ 总结 ] nginx 负载均衡 及 缓存
    Mac
    Swift
    Swift
    Cocoapods
    Swift
  • 原文地址:https://www.cnblogs.com/wwzyy/p/4386061.html
Copyright © 2011-2022 走看看