C语言之快速排序
#include <stdio.h>#include <stdlib.h>#include <string.h>struct student{int id;char name[12];char sex;};int compare(const void* a,const void* b)//基本數(shù)據(jù)類型排序{return *(char*)a-*(char*)b;//從小到大//取值//強轉(zhuǎn)為相應(yīng)類型的指針!!}int compare_struct(const void* a,const void* b){return (*(struct student*)a).id-((struct student*)b)->id;//注意優(yōu)先級誒!//否則報錯在非結(jié)構(gòu)體中。。。}int compare_struct_duoji(const void* a,const void* b)//多級排序{struct student student_a=*(struct student*)a;struct student student_b=*(struct student*)b;if(student_a.id==student_b.id){return student_a.sex-student_b.sex;}else{return student_a.id-student_b.id;}}void main(){//*************char型*************char a[5]="hello";qsort(a,5,sizeof(a[0]),compare);//元素個數(shù)//元素大小//函數(shù)指針int i;for(i=0;i<5;i++)printf("%c ",a[i]);printf("\n");//************struct型************struct student e[4]={{100,"chen",'m'},{100,"li",'f'}, \{70,"wang",'f'},{100,"zhang",'m'}};qsort(e,4,sizeof(e[1]),compare_struct_duoji);for(i=0;i<4;i++)printf("%d %s %c\n",e[i].id,e[i].name,e[i].sex);}
以上是對c語言快速排序的實現(xiàn),非常實用于各位小白和剛剛?cè)腴T學(xué)習(xí)C的朋友們,如果大家對C感興趣的話,可以進(jìn)專門為小白提供學(xué)習(xí)場地的C語言學(xué)習(xí)群哦,群里面有免費的視頻資料,以及系統(tǒng)開發(fā)路線。各位感興趣的朋友可以加群:873521803進(jìn)來學(xué)習(xí)哦!歡迎大家加入!
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
- 上一篇: 高质量的c源代码
- 下一篇: Python获取电脑硬件配置的封装类,可