O(n log n)与O(log n)有何不同?

时间:2017-02-14 23:46:53

标签: algorithm time big-o

研究大O符号,我理解O(log n)作为二分搜索的概念和O(n log n)作为快速排序。

任何人都可以说明 运行时 在这两者之间的主要区别是什么?为什么会这样呢?

他们似乎在直觉上具有相似的相关性

3 个答案:

答案 0 :(得分:22)

基本上:N的因素 二分搜索仅触及少量元素。如果有十亿个元素,二元搜索只会触及其中的~30个 快速排序涉及每一个元素,少数几次。如果有十亿个元素,快速排序会触及所有,大约30次:总共接触300亿次。

答案 1 :(得分:19)

enter image description here

了解Log(n)是如何平坦的(不是字面意义,而是比喻,与其他函数相比),而nLog(n)已经超过600,因为n = 100的值。这就是他们的不同之处是

答案 2 :(得分:-1)

在简单术语和可视化方面,它们在排序算法中有点相同,但在某些情况下快速排序为 O(n log n)存在缺陷,大多数情况下快速排序 log n ,但在特殊情况下,这就是 log n 之前 n 的原因。因此,对于少量分类的快速排序是非常好的,但是对于数百万/十亿不是,更好地使用合并排序进行这种排序。