int (__cdecl *compare )(const void *, const void *)
);(需要排序的方法)
一:整型数组
代码:
#include<stdio.h>#include<stdlib.h>intCmp_int(constvoid*vp1,constvoid*vp2){return*(int*)vp1 -*(int*)vp2;}intmain(){//对整型数组进行快速排序int arr[10]={5,9,0,1,67,99,43,56,88,18};qsort(arr,sizeof(arr)/sizeof(arr[0]),sizeof(int),Cmp_int);for(int i =0;i<sizeof(arr)/sizeof(arr[0]);i++){printf("%d ",arr[i]);}printf("\n");return0;}
二:double类型数组
代码:
#include<stdio.h>#include<stdlib.h>intCmp_double(constvoid* vp1,constvoid*vp2){double tmp =*(double*)vp1 -*(double*)vp2;if(tmp>0){return1;}elseif(tmp ==0){return0;}elsereturn-1;}intmain(){//对double类型数组进行快速排序double brr[10]={11.1,11.2,22.1,22.2,78.8,79.6,88.9,0.0,15.4,100.0};//double类型快速排序qsort(brr,sizeof(brr)/sizeof(brr[0]),sizeof(double),Cmp_double);for(int i =0;i<sizeof(brr)/sizeof(brr[0]);i++){printf("%lf\n",brr[i]);}return0;}
三:字符数组
代码:
#include<stdio.h>#include<stdlib.h>#include<string.h>intCmp_str(constvoid* vp1,constvoid*vp2){returnstrcmp(*(constchar**)vp1,*(constchar**)vp2);}intmain(){//对字符数组进行快排constchar*str[10]={"China","Japan","America","Korea","England","Germany","France","Russia","Singapore","Malaysia"};qsort(str,sizeof(str)/sizeof(str[0]),sizeof(char*),Cmp_str);for(int i =0;i<sizeof(str)/sizeof(str[0]);i++){printf("%s\n",str[i]);}return0;}