这些库函数都是在平时编程中经常调用的快排函数
View Code
以下所介绍的所有排序都是从小到大排序 快速排序的库函数都包含在头文件名为<stdlib.h>中 <1>对int型数组排序 int num[100]; int cmp(const void *a,const void *b) { return *(int *)a-*(int *)b; } int main() { ...... qsort(num,100,sizeof(num[0]),cmp); return 0; } <2>对char型数组排序 char st[100]; int cmp(const void *a,const void *b) { return *(char *)a-*(char *)b; } int main() { ...... qsort(st,100,sizeof(st[0]),cmp); return 0; } <3>对double型数组排序 double f[100]; int cmp(const void *a,const void *b) { return ((*(double *)a-*(double *)b>0)?1:-1); } int main() { ...... qsort(f,100,sizeof(f[0]),cmp); return 0; } <4>对结构体排序 struct node { double data; int flag; }f[100]; int cmp(const void *a,const void *b) { return (((struct node *)a)->data>((struct node *)b)->data?1:-1); } int main() { ...... qsort(f,100,sizeof(f[0]),cmp); return 0; } <5>对结构体的二级排序 struct node { double data; int flag; }f[100]; int cmp(const void *a,const void *b) { if(((struct node *)a)->data != ((struct node *)b)->data) return (((struct node *)a)->data > ((struct node *)b)->data?1:-1); else return (((struct node *)a)->flag-((struct node *)b)->flag); } int main() { ...... qsort(f,100,sizeof(f[0]),cmp); return 0; } <6>对字符串数组的排序 int st[100]; int cmp(const void *a,const void *b) { return strcmp((char *)a,(char *)b);//根据字典序进行比较排序 } int main() { ...... qsort(st,100,sizeof(st[0]),cmp); return 0; } <7>对指针数组的排序 char *s[100];//定义一个指针的数组 int cmp(const void *a,const void *b) { return (strcmp(*(char**)a,*(char**)b));//这里用char**表示指针的指针 } int main() { ...... qsort(s,100,sizeof(s[0]),cmp); return 0; }