c語言 利用庫函式進行快速排序(公升)

2021-08-11 05:43:55 字數 885 閱讀 9756

題目描述:

c/c++中有乙個快速排序的標準庫函式 qsort,在stdlib.h 中宣告,其原型為: 

void qsort(void *base,int nelem, unsigned int width,int (*pfcompare)( const void *, const void *)); 

其中base為待排序資料,nelem為元素數目,width為每個元素長度,單位為位元組,pfcompare為乙個比較函式。 

根據qsort 函式的用法規定,「比較函式」的原型應是: 

int 函式名(const void * elem1, const void * elem2); 

如果* elem1 應該排在 * elem2 前面,則函式返回值是負整數; 

如果* elem1 應該排在 * elem2 後面,則函式返回值是正整數; 

如果* elem1和* elem2順序無所謂,則函式返回0。 

請程式設計實現呼叫該庫函式,實現乙個較大整數陣列的增序快速排序。

題目要求:

輸入——第一行為整數元素數目n, 第二行為n個整數,用空格分隔。

輸出——n個從小到大排好的整數,用空格分開。

#include

#include int compare(constvoid *a,const void *b)// 定義不是任何型別的指標常量,但是可以是任何型別的指標。

int main()//主函式

{ int i,n;

scanf("%d",&n);//讀入需要排序陣列中的元素數目

int a[n];

for(i=0;i

快速排序:快速排序採用了一種分治策略——將原問題分解成若干個規模更小但是結構跟原問題相似的子問題。這些子問題的解決則利用了遞迴思想

c語言快速排序的庫函式整理

以下所介紹的所有排序都是從小到大排序 快速排序的庫函式都包含在頭檔名為中 1 對int型陣列排序 int num 100 int cmp const void a,const void b int main 2 對char型陣列排序 char st 100 int cmp const void a,...

C C 快速排序庫函式

c 自定義比較函式 庫函式比較函式 命名空間std void qsort void base,size t num,size t size,int comparator const void const void include其中const void a表示宣告了乙個常量指標 a,int a指的是...

c語言庫函式

1 asll可現實字元 include library.h u8 lib int2string u32 number,u8 char s char s i 0 for j 0 j i 2 j return i description 初始化記憶體函式,以位元組為單位 param in pdst 目標...