qsort函式:無型別排序函式
void qsort (void* base, size_t num, size_t size,int (compar)(const void,const void*));
傳入引數陣列首位址,陣列字元個數,陣列型別大小,自己寫的比較函式位址
模擬實現qsort函式:
#include
#include
#include
#include
intminecmp
(const
void
*_p1,
const
void
*_p2)
//比較函式
elseif(
*p1 <
*p2)
else
}void
print
(int
*arr,
int n)
//列印函式
void
minechange
(char
*src,
char
*dst,
int size)
//交換函式
}void
mineqsort
(void
*arr,
int num,
int size,
int(
*comp)
(const
void*,
const
void*)
)//模擬qsort函式}if
(flag ==0)
}}intmain()
;int len =
sizeof
(arr)
/sizeof
(arr[0]
);print
(arr, len)
;mineqsort
(arr,
sizeof
(arr)
/sizeof
(arr[0]
),sizeof
(int
), minecmp)
;print
(arr, len)
;system
("pause");
return0;
}
模擬實現qsort函式
上節提到qsort函式的原型,今天我們就來模擬下它 首先是qsort函式的主體部分,主要還是迴圈,判斷比較,較困難的是型別的轉化,我們希望可以知道每次訪問的位元組數,即將初始位址轉化為字元指標,即每次解引用可訪問乙個位元組,而再加上j width就可以知道訪問第幾個元素,這樣就可以方便的比較了。vo...
模擬實現qsort函式
模擬實現qsort函式 qsort 的函式原型是 void qsort void base,size t num,size t width,int cdecl compare const void const void qsort 即,quicksort 主要根據你給的比較條件給乙個快速排序,主要是...
C 參考庫函式qsort 模擬實現通用氣泡排序
相信大家對氣泡排序一定不陌生吧,作為一種經典的排序方法,它的基本思想是 以公升序為例 將相鄰的兩個數進行比較,若前乙個數比後乙個數大,則交換它們的順序,這樣一趟下來,最大的數就跑到了最後一位,的二趟還是一樣的方法,最大的數不參與交換,這樣進行n 1趟後,我們就實現了排序 void bubblesor...