码迷,mamicode.com
首页 > 编程语言 > 详细

[Algo][July]基于比较排序的算法下界是O(nlogn)

时间:2017-10-16 15:01:31      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:理解   多少   algo   nlogn   一半   col   bsp   nlog   忽略   

假设:有n个数需要排序。

n个数的全排列方式是A(n,n) = n!

基于比较,i<j. 在最优的情况下,可以在n!个可能中筛去一半。 也就是说剩下(n!/2)种可能.

这样的比较方式进行k次。最后筛出一种(符合要求的)排序:

  n!/(2k) < 1

公式推导:

  2k > n!                 //我理解就是k表示要筛多少次,2k是排列的可能性。那么2k要大于n!,才能保证筛的时候包含了那个正确的排列。

  klog(2) > log(n!)  //两边取对数

  k > log(n!)           //忽略常数

  n!<nn => log(n!)~nlog(n)

推得:

  k > nlog(n)         //所以nlog(n)是下界

 

  

[Algo][July]基于比较排序的算法下界是O(nlogn)

标签:理解   多少   algo   nlogn   一半   col   bsp   nlog   忽略   

原文地址:http://www.cnblogs.com/hopping/p/7676609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!