C語言實現快速排序

2021-06-28 02:07:25 字數 588 閱讀 5154

快速排序,是氣泡排序的改進,通過尋找「中間元素」,在一趟排序中,把比「中間元素」小的數放到左邊,比「中間元素」大的數放到右邊,如此遞迴,最終得到排序結果。

#include #define num 5

void quick_sort(int a,int left,int right);

void swap(int v,int i, int j);

void main();

quick_sort(a,0,num-1);

for(int i = 0;i < num;i++) }

void quick_sort(int a,int left,int right)

swap(a,left,(left + right)/2);

mid = left;

for(i = left+1;i <= right;i++)

} swap(a,left,mid);

quick_sort(a,left,mid-1);

quick_sort(a,mid+1,right);

}void swap(int v,int i, int j)

c語言實現快速排序

快速排序使用分治法 divide and conquer 策略來把乙個序列 list 分為兩個子串行 sub lists 步驟為 從數列中挑出乙個元素,稱為 基準 pivot 重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面 相同的數可以到任一邊 在這個分割槽結束...

快速排序 C語言實現

以前使用rm時,ruby指令碼提供乙個sort函式,可以把陣列進行排序,後來得知採用的演算法是快速排序。隨著資料結構課程的學習,快速排序如今也不再神秘,如下 using namespace std void quicksort int a,int low,int high int first low...

C語言實現快速排序

快速排序 方法 從左邊開始找比基準值大的元素,從右邊找比基準值小的元素,交換兩個元素 缺點 如果所給元素序列為逆序的,那麼快速排序的時間複雜度很糟糕。長序列對遞迴排序來說不友好。時間複雜度 平均o nlogn 最壞o n 空間複雜度 最壞o n 穩定性 不穩定排序 int quicsort int ...