我认为只需要进行n-1次比较来比较数组中除枢轴之外的每个元素,我只是不了解分区部分,任何帮助都将不胜感激。 (我的问题是关于Quicksort的大O符号是O(nlogn)而我不明白为什么它是n?它可能是O((n-1)logn)。
答案 0 :(得分:0)
我明白了,选择枢轴在每次递归中被计为一次操作,比较为n-1,所以每次我进行操作,所以它是O(nlogn)!谢谢你的回复。
答案 1 :(得分:0)
以下是Mark Allen Weiss撰写的“Java中的数据结构和算法”一书(第31页)中的一段。
(就Big-Oh而言)。不要说T(N)= O(2N ^ 2)或T(N)= O(N ^ 2 + N)。在两种情况下,正确的形式是T(N)= O(N ^ 2)。 通常可以忽略低阶项,并且可以丢弃常量。在这些情况下,要求的精度要低得多。