快速排序是對氣泡排序的一種改進,使用的是分治法,主要思想為在待排序陣列中找到乙個關鍵資料(本例中為陣列第乙個數),設定兩個引數 i和 j ,讓i從頭遍歷 , j從尾遍歷,分別找比關鍵資料大的數和比關鍵資料小的數,找到之後讓i和j所指向的數交換,當i和j相等時,讓i和j指向的數和關鍵資料交換,使得關鍵資料左邊都比它小右邊都比它大,在對左右兩邊再進行遞迴操作,是最終陣列成為順序。
#include
#define n 50
int arr[n];
quick_sort(int left,int right)
while(i// 找較小位置 (注意等號,上面等號可不加,下面必須加)
if(i// 交換
} // 填中間值
arr[left]=arr[i];
arr[i]=temp;
quick_sort(left,i-1); // 遞迴左邊
quick_sort(i+1,right); // 遞迴右邊
}int main()
python寫快排 python 實現快速排序
python排序演算法之快速排序 快速排序 quicksort 快排的思想 首先任意選取乙個資料 通常選用陣列的第乙個數 作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。一趟快速排序的演算法是 1 設定兩個變數i j,排序開始的時候 i 0,j ...
一行寫快排
今天旁邊的大神提了句,其實快排可以一行 實現的,是真的嗎?沒想到用這種方法盡然實現了 def quicksortshort arr return if arr else quicksortshort y for y in arr 1 if yfor y in arr 1 if y arr 0 不過,...
排序演算法 快排 (我小白 勿噴)
排序演算法中,桶排o n 的時間複雜度算很快的了,但是當資料很大的時候,空間複雜度很大。那麼我們熟悉的冒泡呢?時間複雜度最壞的情況o n 2 空間複雜度才o 1 刷題時排序資料是 10 5 的時候你就會t了 所以這個時候 qsort 就出來了。假設 我們現在有 一組資料 6 1 2 7 9 3 4 ...