C語言 簡單容易看懂的快速排序

2021-10-05 04:31:21 字數 1019 閱讀 2302

**如下:

/*******************************

*程式功能:快速排序(分治法排序)

*******************************/

#include

#define n 6

intquick_short

(int

*a,int low,

int high)

//key元素可以是任意的

//我們不妨選第乙個元素

key = a[i]

;while

(low<=high)

if(key>=a[high]

)while

(lowa[low])if

(key<=a[low])}

printf

("low:%d "

,low)

;printf

("high:%d \n"

,high)

;//每次的key元素排好後已經中立

//不要再參與排序,否則就亂了

quick_short

(a,i,low-1)

;//遞迴排左側

quick_short

(a,high+

1,j)

;//遞迴排右側

}//交換函式

intexchange

(int

*low,

int*high)

//列印函式

intshow

(int

*a)putchar(10

);return0;

}//主函式

intmain

(int argc,

const

char

*ar**)

;quick_short

(a,0

,n-1);

show

(a);

return0;

}

結束。

C語言之簡單快速排序

快速排序是一種對氣泡排序的改進,運用了二分的思想,提高了效率,元素的交換是跳躍式的,更適合用在陣列這樣方便隨機讀取的順序結構,平均時間複雜度nlogn。include include 快速排序 void input int int void output int int void order int...

C 簡單的快速排序

寫乙個快速排序將int型陣列由小到大排序我的 include 寫乙個快速排序 using namespace std void quicksort int int,int void swap int int intmain 進行快速排序 quicksort a,0 n1 1 for int i 0 ...

快速排序C語言

就感覺,自己對這些個排序.至少,腦袋裡還沒有.哎,我老是不專心呢.加油吧.說說快速排序吧.這東西,原理就是不斷地將乙個陣列分成3部分.保持所有陣列處在這種狀態,最終完成排序.這些思想,還沒有掌握.加油吧,我還能說什麼?說些這個,呵呵.這段 起初不懂.後來,隨著不斷手工模擬,發現,採用了很多技巧.也難...