我正在瀏覽快速排序和我看到的任何文章,我越來越困惑。快速排序混淆
1)本實施好纔是真的好http://gauss.ececs.uc.edu/Courses/C321/html/quicksort.java.html
但據我瞭解,每遍之後,樞軸指數在正確的位置。
那麼理想,我們應該做以下幾點:
public static void Quicksort(int A[], int f, int l)
{
if (f >= l) return;
int pivot_index = partition(A, f, l);
Quicksort(A, f, pivot_index-1); //*** pivot_index-1
Quicksort(A, pivot_index+1, l);
}
但教程使用快速排序(A,F,pivot_index);。
我200%肯定,使'pivot_index-1'的變化不會提高任何性能或降低複雜性;但只是如果我的理解是正確的就想做出來。
2)執行here有效;但並不是每次傳遞都會將主元素放置在正確的位置。
看看這裏http://xoax.net/comp_sci/crs/algorithms/lessons/Lesson4/ – Arpit 2013-02-20 17:00:50