摘要:二函數(shù)的使用實例函數(shù)排序一個整形數(shù)組代碼如下示例函數(shù)排序一個結(jié)構(gòu)體代碼如下示例張三李四王五用冒泡排序函數(shù)排序模擬一個函數(shù)代碼如下示例
qsort函數(shù)
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
void qsort( void *base, size_t num, size_t size, int(*cmp)(const void*,const void *) );
頭文件:
函數(shù)功能:qsort()函數(shù)的功能是對數(shù)組進(jìn)行排序,數(shù)組有num個元素,每個元素大小為size。
參數(shù)base : base指向數(shù)組的起始地址,通常該位置傳入的是一個數(shù)組名。
參數(shù)num :num表示該數(shù)組的元素個數(shù)
參數(shù)size :size表示該數(shù)組中每個元素的大小(字節(jié)數(shù))
參數(shù)(*cmp)(const void *, const void *):此為指向比較函數(shù)的函數(shù)指針,決定了排序的順序。
函數(shù)返回值:無
注意:如果兩個元素的值是相同的,那么他們兩個的前后順序排列是不確定的。
代碼如下(示例):
#include #include int cmp_by_num(const void*e1,const void*e2){ return *(int*)e1 - *(int*) e2;}void Print(int* p, size_t sz){ size_t i = 0; for (i = 0; i < sz; i++) { printf("%d", *(p + i)); } printf("/n");}int main(){ int arr[] = { 1,2,6,9,8,5,7,4,3}; size_t sz = sizeof(arr) / sizeof(arr[0]); qsort(arr, sz, sizeof(arr[0]), cmp_by_num); Print(arr, sz);}
代碼如下(示例):
#include #include struct Stu{ char name[20]; int age;};int cmp_by_name(const void* e1, const void* e2){ return strcmp(((struct Stu*)e1)->name, ((struct Stu*)e2)->name);};void Print(struct Stu* p, int sz){ int i = 0; for (i = 0; i < sz; i++) { printf("%s/t%d/n", p[i].name, p[i].age); }};int main(){ struct Stu s[3] = { {"張三",13}, {"李四",14}, {"王五",15} }; size_t sz = sizeof(s) / sizeof(s[0]); qsort(s, sz, sizeof(s[0]), cmp_by_name); Print(s, sz);}
代碼如下(示例):
#include #include int cmp_by_num(const void* e1, const void* e2){ return *(int*)e1 - *(int*)e2;}void Swap(char* e1, char* e2, size_t width){ size_t i = 0; for (i = 0; i < width; i++) { char tmp = *e1; *e1 = *e2; *e2 = tmp; e1++; e2++; }}void BubbleSort(void* base, size_t num, size_t width, int (*cmp)(const void*, const void*)){ size_t i = 0; for (i = 0; i < num - 1; i++) { size_t j = 0; for (j = 0; j < num - i - 1; j++) { if (cmp((char*)base + j * width, (char*)base + (j + 1) * width) > 0) { Swap((char*)base + j * width, (char*)base + (j + 1) * width,width); } } }}void Print(int* p, size_t sz){ size_t i = 0; for (i = 0; i < sz; i++) { printf("%d", *(p + i)); } printf("/n");}int main(){ int arr[] = { 5,9,6,8,7,4,1,2,3 }; size_t sz = sizeof(arr) / sizeof(arr[0]); BubbleSort(arr, sz, sizeof(arr[0]), cmp_by_num); Print(arr, sz);}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/119402.html
大家好,我們每天全網(wǎng)搜集各行各業(yè)的研究報告,了解一個行業(yè)從閱讀這個行業(yè)的研報開始,今日分享目錄如下: 20211006分享目錄: 2021抖音電商商家經(jīng)營方法論白皮書-34頁.pdf 2021中國數(shù)據(jù)智能產(chǎn)業(yè)發(fā)展研究報告-50頁.pdf 2021公益數(shù)字化轉(zhuǎn)型-56頁.pdf 2021年中國一線城市出行平臺調(diào)研報告-77頁.pdf 2021年中國內(nèi)容機(jī)構(gòu)(MCN)行業(yè)發(fā)展研究報告-66頁.pd...
摘要:參一江湖只作為內(nèi)容整理方,僅供學(xué)習(xí)使用。更多相關(guān)報告請查看參一江湖星球。 大家好,我們每天全網(wǎng)搜集各行各業(yè)的研究報告,了解一個行業(yè)從閱讀這個行業(yè)的研報開始,今日分享目錄如下: 20210906分享目錄: 2021中國車險科技創(chuàng)新服務(wù)研究報告-45頁.pdf 2021年中國家裝行業(yè)數(shù)字化研...
摘要:通訊錄今天我們內(nèi)容是一個小項目通訊錄的實現(xiàn)首先,我先思考一下,一個通訊錄,它應(yīng)該具有哪些功能。說到通訊錄,我們可以打開手機(jī)的通訊錄,觀察一番。為了防止我們忘記數(shù)字,代表的是那項功能。 ...
大家好,我們每天全網(wǎng)搜集各行各業(yè)的研究報告,了解一個行業(yè)從閱讀這個行業(yè)的研報開始,今日分享目錄如下: 20210928分享目錄: 休閑娛樂行業(yè)主題研究:本地出行,眾彩紛呈-35頁.pdf 休閑服務(wù)行業(yè)海南折扣觀察第一期:SKU較少的GDF折扣小幅加大,其他公司相對穩(wěn)定-14頁.pdf 傳媒行業(yè)2021年中期策略報告:從流量到留量,抓住年輕人、擁抱視頻化、提升專業(yè)化-30頁.pdf 傳媒行業(yè)深度...
閱讀 2447·2021-10-14 09:42
閱讀 1137·2021-09-22 15:09
閱讀 3545·2021-09-09 09:33
閱讀 3026·2021-09-07 09:59
閱讀 3639·2021-09-03 10:34
閱讀 3532·2021-07-26 22:01
閱讀 2822·2019-08-30 13:06
閱讀 1202·2019-08-30 10:48