首页 > 其他 > 详细

各种排序算法的复杂度

时间:2014-03-22 10:49:13      阅读:230      评论:0      收藏:0      [点我收藏+]

一.排序算法复杂度                        

 

  排序算法

                                    时间复杂度

 

    空间复杂度(最坏情形)

        最好

        平均

       最坏

 冒泡排序

 O(n)

 O(n^2)

 O(n^2)

  O(1)

 插入排序

 O(n) 

 O(n^2)

 O(n^2)

  O(1)

 归并排序

 O(n*log(n))

 O(n*log(n))

 O(n*log(n))

 O(n)

 快速排序

 O(n*log(n))

 O(n*log(n))

 O(n^2)

 O(n)

 堆排序

 O(n*log(n))

 O(n*log(n))

 O(n*log(n))

 O(1)

 桶排序

 O(n+k)

 O(n+k)

 O(n^2)

 O(nk)

 基数排序

 O(nk)

 O(nk)

 O(nk)

 O(n+k)

 

二.使用比较的排序算法下界

bubuko.com,布布扣

上面的二叉树建立了决策树的模型,可以得出的结论是:任意N个数,它们的排列方式有N!种,使用比较排序,至少要比较log(N!)次(树的深度)。这可以用于证明排序算法的下界。只使用元素间比较的任何排序算法需要进行Ω(NlogN)次比较。

证明:使用比较的排序需要进行log(N!)次比较,log(N!)  =log(N(N-1)(N-2)(N-3)(N-4)…1)

                                                                         >=logN+log(N-1)+…log(N/2)

                                                                         >=N/2log(N/2)

                                                                           =N/2log(N)-N/2

                                                                           =Ω(NlogN)

 

各种排序算法的复杂度,布布扣,bubuko.com

各种排序算法的复杂度

原文:http://blog.csdn.net/u011608357/article/details/21780093

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!