快速排序演算法歸納總結-java
阿新 • • 發佈:2019-02-07
第一個分割槽函式
// arr[]為陣列,start、end分別為陣列第一個元素和最後一個元素的索引
// povitIndex為陣列中任意選中的數的索引
int partition(int arr[], int start, int end, int pivotIndex)
{
int pivot = arr[pivotIndex];
swap(arr[pivotIndex], arr[end]);
int storeIndex = start;
//這個迴圈比一般的寫法簡潔高效,呵呵維基百科上看到的
for(int i = start; i < end; ++i) {
if (arr[i] < pivot) {
swap(arr[i], arr[storeIndex]);
++storeIndex;
}
}
swap(arr[storeIndex], arr[end]);
return storeIndex;
}