#include<stdio.h>
#include<string.h>
#pragma warning(disable:4996)
int cmp(const void *x, const void *y) //整形
return (*(int*)x) - (*(int*)y);
}
int cmp1(const void *x, const void *y) //字符型
{
return (*(char*)x) - (*(char*)y);
}
int cmp2(const void *x, const void *y) //字符串
{
return strcmp(*(char**)x, *(char**)y);
}
int cmp3(const void *x, const void *y) //浮点型
{
return (*(double*)x) - (*(double*)y);
}
int main()
{
int i = 0;
int arr1[] = { 1, 25, 36, 58, 49, 17, 66, 77, 9 };
qsort(arr1, sizeof(arr1) / sizeof(arr1[0]), sizeof(arr1[0]), cmp);
for (i = 0; i < sizeof(arr1) / sizeof(arr1[0]); i++){
printf("%d", arr1[i]);
}
printf("\n");
char arr2[] = { 'w', 'h', 'g', 'a', 'f', 'c', 'r', 'u', 't' };
qsort(arr2, sizeof(arr2) / sizeof(arr2[0]), sizeof(arr2[0]), cmp1);
for (i = 0; i < sizeof(arr2) / sizeof(arr2[0]); i++){
printf("%d", arr2[i]);
}
printf("\n");
char *arr3[] = { "asd", "tgb", "ujn", "ghj", "bn" };
qsort(arr3, sizeof(arr3) / sizeof(*arr3), sizeof(*arr3), cmp2);
for (i = 0; i < sizeof(arr3) / sizeof(*arr3); i++){
printf("%s", arr3[i]);
}
printf("\n");
double arr4[] = { 4.1, 5.6, 10.9, 25.4, 22.3, 36.2, 50.1, 55.9, 61.2 };
qsort(arr4, sizeof(arr4) / sizeof(arr4[0]), sizeof(arr4[0]), cmp3);
for (i = 0; i < sizeof(arr4) / sizeof(arr4[0]); i++){
printf("%f", arr4[i]);
}
printf("\n");
system("pause");
return 0;
}
qsort函数原型:
qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*))
qsort函数可以对任何类型的数据进行排序。