小白仿寫快排

2021-07-30 11:25:16 字數 553 閱讀 1985

快速排序是對氣泡排序的一種改進,使用的是分治法,主要思想為在待排序陣列中找到乙個關鍵資料(本例中為陣列第乙個數),設定兩個引數 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 ...