研究大O符号,我理解O(log n)作为二分搜索的概念和O(n log n)作为快速排序。
任何人都可以说明 运行时 在这两者之间的主要区别是什么?为什么会这样呢?
他们似乎在直觉上具有相似的相关性
答案 0 :(得分:22)
基本上:N的因素 二分搜索仅触及少量元素。如果有十亿个元素,二元搜索只会触及其中的~30个 快速排序涉及每一个元素,少数几次。如果有十亿个元素,快速排序会触及所有,大约30次:总共接触300亿次。
答案 1 :(得分:19)
答案 2 :(得分:-1)
在简单术语和可视化方面,它们在排序算法中有点相同,但在某些情况下快速排序为 O(n log n)存在缺陷,大多数情况下快速排序 log n ,但在特殊情况下n²,这就是 log n 之前 n 的原因。因此,对于少量分类的快速排序是非常好的,但是对于数百万/十亿不是,更好地使用合并排序进行这种排序。