快速排序 QuickSort

2021-05-27 08:02:56 字數 499 閱讀 9137

1,void quicksort(int *a,int low,int high)這個函式是排序的遞迴部分,mid就是已經確定的基準元素的位置。

2,int partition(int *a,int low,int high)這個函式幹了兩件事

1、挑出來乙個基準元素(這裡選的是最後乙個作為基準),找它的正確的位置,把它賦給該位置,並返回該位置的座標

2、把所有比基準元素小的挪到他前面,比基準大的挪到他後面

#include #include int partition(int *a,int low,int high)       

}a[high] = a[i];

a[i] = x;

return i;

}void quicksort(int *a,int low,int high)

} int main(void)

快速排序 QuickSort

快速排序通常用於排序的最佳的使用選擇,其期望執行時間為 o nlgn 能夠進行就地排序。最壞執行時間為 o n 2 演算法描述 分解 divide 陣列 a beg end 被劃分為兩個子陣列 a beg mid 1 和a mid 1 end 使得a beg mid 1 中的資料都小於 a mid ...

快速排序 quicksort

快速排序 quicksort 是分治法的典型例子,它的主要思想是將乙個待排序的陣列以陣列的某乙個元素x為軸,使這個軸的左側元素都比x大,而右側元素都比x小 從大到小排序 然後以這個x在變換後陣列的位置i分為左右兩個子陣列,再分別進行快速排序,直到子陣列中只有乙個元素為止。快速排序演算法如下 void...

快速排序 QuickSort

1 演算法思想 快速排序是c.r.a.hoare於1962年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法 divide and conquermethod 1 分治法的基本思想 分治法的基本思想是 將原問題分解為若干個規模更小但結構與原問題相似的子問題。遞迴地解這些子問題,然後將...