[+]
[cpp]view plain
copy
print?
void
qsort(
void
*base,
size_t
nmemb,
size_t
size,
int(*compare) (
const
void
*, const
void
*));
函式原型在中找到
[html]view plain
copy
print?
base : 指向陣列中第乙個元素(如果只是對陣列的一段區域進行排序,那麼要使base指向這段區域的第乙個元素)
nmemb : 要排序元素的數量
size : 每個陣列元素的大小,用位元組來衡量
compare : 指向比較函式的指標
陣列的元素可能是任何型別的,甚至可能是結構體或聯合,所以必須告訴函式qsort如何確定兩個陣列元素哪乙個「更小」。通過編寫比較函式可以為qsort提供這些資訊。當給定兩個指向陣列元素的指標p和q時,比較函式必須返回乙個整數,如果*p小於*q,那麼返回的數為負數;如果*p等於*q,那麼返回0.如果*p大於*q,返回正數.按照這種結果返回,qsort對陣列預設是公升序排序.如果想降序,只需要將上述結果返回值*-1即可
以int陣列為測試例子,進行排序
[cpp]view plain
copy
print?
#include
#include
intcompi(
const
void
*a,
const
void
*b)
intcompd(
const
void
*a,
const
void
*b)
intmain()
switch
(type)
if(type == 1)
else
for(i = 0; i
printf("\n"
);
} return
0;
}
測試結果:
大同小異,簡單的貼一道acm題,來說明結構體陣列排序的方法吧
qsort 快速排序
qsort函式是ansi c標準中提供的,其宣告在stdlib.h檔案中,是根據二分法寫的,其時間複雜度為n log n 其結構為 void qsort void base,size t nelem,size t width,int comp const void const void 其中 bas...
qsort快速排序
函式原型 void qsort void base size t num,size t width,int cdecl compare const void const void 標頭檔案 stdlib.h size t num 陣列中待排序元素的數量 size t width 各元素占用空間大小 ...
qsort快速排序
qsortc語言自帶的快速排序,今天來玩玩,直接看 2.陣列中待排序元素數量 3.各元素的占用空間大小 4.指向函式的指標,用於確定排序的順序 include include qsort排序結構體 typedef struct node node int compinc1 const void a,...