程序问答
发布时间:2022-06-02 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了O(n log n)vs O(n)-时间复杂度的实际差异,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何解决O(n log n)vs O(n)-时间复杂度的实际差异?
开发过程中遇到O(n log n)vs O(n)-时间复杂度的实际差异的问题如何解决?下面主要结合日常开发的经验,给出你关于O(n log n)vs O(n)-时间复杂度的实际差异的解决方法建议,希望对你解决O(n log n)vs O(n)-时间复杂度的实际差异有所启发或帮助;
Big-
O表示法的主要目的是让您像在帖子中所做的那样进行估算,并自己决定花费精力编写通常更高级的算法是否值得您付出额外的cpu周期。购买该代码的改进。根据情况,即使您的数据集相对较小,您也可能会得到不同的答案:
- 如果您在移动设备上运行,并且算法占执行时间的很大一部分,那么减少cpu使用量就可以延长电池寿命
- 如果您在一个全有或全无的竞争环境(例如高频交易系统)中运行,那么微观优化可能会在赚钱和亏损之间有所区别
- 当您的性能分析表明所讨论的算法在服务器环境中占据着执行时间时,切换到更快的算法可能会提高所有客户端的性能。
Big-O表示法隐藏的另一件事是常数乘法因子。例如,Quick SELEct具有非常合理的乘数,因此将其应用于非常大的数据集所节省的时间非常值得实施。
您需要记住的另一件事是空间的复杂性。通常,具有O(N*Log N)
时间复杂度的算法将具有O(Log
N)
空间复杂度。例如,当递归函数在堆栈容量有限的系统上运行时,这可能会给非常大的数据集带来问题。
解决方法
n log n > n
-但这就像一段pseudo-linear
感情。如果n=1 billion
,则登录n〜30;
所以n log n
会30 billion
,这是30 X n
,秩序n
。我想知道两者之间的时间复杂度差异n log n and
n
在现实生活中是否显着。
例如:quick SELEct
在未排序数组中找到第k个元素时,正在O(n)
使用quickSELEct算法。
如果我对数组进行排序并找到第k个元素,则为O(n log n)
。要用1 trillion
元素对数组排序,60
times
如果我quicksort
和做的话,我会变慢index it
。
大佬总结
以上是大佬教程为你收集整理的O(n log n)vs O(n)-时间复杂度的实际差异全部内容,希望文章能够帮你解决O(n log n)vs O(n)-时间复杂度的实际差异所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。