C語言使用現成的快速排序演算法qsort

2021-10-08 17:55:00 字數 1043 閱讀 1473

在c語言中,有時要對陣列進行排序,除了自己造輪子外,也有自帶的函式,這就是qsort()。

qsort()使用了快速排序演算法,主要是對陣列進行排序。要使用qsort(),必須包含標頭檔案。

qsort()的原型:

void

qsort

(void

*base, size_t nitems, size_t size,

int(

*compar)

(const

void*,

const

void*)

)

compar()函式一般要自己實現, 原型如下:

int

(*compar)

(const

void

* a,

const

void

* b)

;

對陣列arr = 進行從小到大排序

**:

#include

#include

int arr=

;/* 函式體的a和b的型別,要和排序的陣列的型別保持一致*/

intcompar

(const

void

* a,

const

void

* b)

intmain()

qsort

(arr, len,

sizeof

(int

), compar)

;printf

("\n排序之後的列表:\n");

for(i=

0; i)return(0

);}

執行結果:

排序之前的列表:562

3303621

15 排序之後的列表:02

1521

3336

56

快速排序演算法C語言

快排的核心思想是分而治之,即第一步先選乙個參考數,第二步將小於參考數的數放左邊,大於該參考數的數放右邊,第三步分別對左邊部分的數和右邊部分的數再進行快排遞迴呼叫。c語言 include void quick sort int a,int p,int r int partition int a,int...

快速排序演算法 C語言

參考文章 include include 隨機找出乙個數 通常就拿陣列第乙個資料就行 把它插入乙個位置,使得它左邊的數都比它小,它右邊的資料都比它大,這樣就將乙個陣列分成了兩個子陣列,然後再按照同樣的方法把子陣列再分成更小的子陣列,直到不能分解為止。它也是分治思想的乙個經典實驗 歸併排序也是 舉例說...

c語言快速排序演算法

每次排序的時候設定乙個基準點,將小於等於基準點的數全部放到基準點的左邊,將大於等於基準點的數全部放到基準點的右邊。includevoid quicksort int a,int left,int right int temp a left temp就是基準 int i left int j righ...