快速排序(C語言實現)

2022-10-10 00:27:09 字數 448 閱讀 3279

#includevoid swap(int *x, int *y) 

int partition(int a, int p, int r)

/** 此時j指向的位置和j的左邊的數必定小於x,此時將存放x的a[p]與a[j]換位置

* 此時a[j]的左邊的數都小於等於a[j],右邊的書都大於a[j],然後返回a[j]的位置

*/swap(&a[j], &a[p]);

return j;

}void quicksort(int a, int p, int r)

}int main(void) ;

quicksort(a, 0, 9);

for (int i = 0; i < 10; i++)

printf("%d\t", a[i]);

return 0;

}

C語言實現快速排序

快速排序,是氣泡排序的改進,通過尋找 中間元素 在一趟排序中,把比 中間元素 小的數放到左邊,比 中間元素 大的數放到右邊,如此遞迴,最終得到排序結果。include define num 5 void quick sort int a,int left,int right void swap in...

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...