#include <stdlib.h>
#include <stdio.h>
int cmp1(const void *a,const void *b)
{
return * (int*)a-* (int*)b;
}
void test_1()
{
int a[10]={9,5,8,6,7,4,1,2,3};
int sz=sizeof(a)/sizeof(a[0]);
int i;
qsort(a,sz,sizeof(a[0]),cmp1);
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
}
int cmp2(const void *a,const void *b)
{
if(* (float*)a==* (float*)b)
return 0;
if(* (float*)a>* (float*)b)
return 1;
if(* (float*)a<* (float*)b)
return -1;
}
void test_2()
{
float a[10]={9.0,5.0,8.0,5.1,7.0,4.0,1.0,2.0,3.0};
int sz=sizeof(a)/sizeof(a[0]);
int i;
qsort(a,sz,sizeof(a[0]),cmp2);
printf("\n");
for(i=0;i<10;i++)
{
printf("%.3f",a[i]);
}
}
int main()
{
test_1();
test_2();
/*
qsort 的使用是对不同类型的数据进行排序
*/
}
qsort的作用与冒泡排序的差不多一样,但是冒泡排序是针对整数类型的大小排列顺序,而qsort函数的操作对象数据就比较多。
void __cdecl qsort(void *_Base,size_t _NumOfElements,size_t _SizeOfElements,int (__cdecl *_PtFuncCompare)(const void *,const void *));
void *_Base:是指操作对象的起始地址
size_t _NumOfElements:操作对象的个数
size_t _SizeOfElements:一个操作对象所占的字节