qsort函數在在stdlib.h中。
函數原型
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))
參數
- base -- 這就是指針的數組的第一個元素進行排序
- nitems -- 這是由基部指向的數組中的元素數目
- size -- 這是在數組中的每個元素的大小(以字節為單位)
- compar -- 這個函數比較兩個元素
返回值:不返回任何值
缺點:對於有多個重復值的數組來說,效率較低不穩定。
#include <stdio.h>
#include <stdlib.h>
// qsort 要結合 compare使用
int compare(const void *value1, const void *value2) {
// 升序
return (*(int*)value1 - *(int*)value2);
}
int main(int argc, char *argv[]) {
int arr[]= {-1,5,6,2,7,9};
qsort(arr, 6, sizeof(int), compare);
// 輸出結果
int i=0;
for(; i<sizeof(arr)/sizeof(int); i++) {
printf("%d ", arr[i]);
}
return 0;
}
