时间为O(nlg n)的排序算法 如快速排序 堆排序 nlg是啥意思。好象是lgn。 啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间为O(nlg n)的排序算法 如快速排序 堆排序 nlg是啥意思。好象是lgn。 啥意思?相关的知识,希望对你有一定的参考价值。

准确来说,是log(2,n),即以2为底取n的对数.
该时间复杂度的产生是由于算法中使用了二分法.二分法的其中一个显著的标志就是使得渐进复杂度变为2底对数级别.
直观来说,对于1000个数的排序,效率为O(n)的排序(假设有)将花费1000"单位"的时间,那么O(n²)的排序将花费10^6"单位"的时间.而O(nlogn)的排序将花费 1000*log(1000) ≈ 10000 "单位"的时间.
这里可以看出其效率的显著优势,
而通过函数有关特征可以得知,对数函数是增长的越来越慢的,这就使得O(nlogn)的排序可以在越大的工作量中和平方级排序拉大差距.
参考技术A lgn是对2取对数
意思是找一个数使得2^x=n那么lg n=x
参考技术B 组的手向那边窜

以上是关于时间为O(nlg n)的排序算法 如快速排序 堆排序 nlg是啥意思。好象是lgn。 啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

排序算法的实现(归并,快排,堆排,希尔排序 O(N*log(N)))

再论快排

数据结构常见的7种比较排序算法2

十大排序算法-快排-希尔-堆排-归并-冒泡-桶排-选择-插入-计数-基数-1

排序算法——快排思想

Java算法