4-37排序。
題目:對10個數(shù)進行排序。

分析:
快速排序的基本思想是:選取一個元素作為基準值(pivot),將要排序的數(shù)組分成兩個部分,其中一部分所有的元素都比基準值小,另一部分所有的元素都比基準值大。然后對這兩部分分別進行快速排序,重復(fù)該過程,直到所有子集只包含單個元素時結(jié)束。
下述代碼中的 quicksort
函數(shù)就是實現(xiàn)了這個過程,其中:
left
?和?right
?分別表示需要排序的數(shù)組的左右指針。pivot
?表示基準點,取中間值。while
?循環(huán)中,通過左右指針的移動,找到左半部分大于等于基準點、右半部分小于等于基準點的數(shù),并交換它們的位置。if
?判斷中,如果左側(cè)還有未排序的數(shù),則遞歸繼續(xù)對左半部分進行快速排序;同理,如果右側(cè)還有未排序的數(shù),則遞歸繼續(xù)對右半部分進行快速排序。


示例:
標簽: