qsort 总结

qsort
功 能: 使用 快速排序 例程进行排序,编译器自带的库函数。
头文件:stdlib.h
用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数: 1 待排序 数组 首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的 指针 ,用于确定排序的顺序
 
如何根据函数的指针的返回值,来确定排列顺序呢???
 
比如:
对一个长为10的 数组 进行排序时,int arr[10]={5,0,3,8,1,6,7,4,9,2};那么base应为arr,num应为 10,width应为 sizeof(int),comp函数随自己的命名。
qsort(a,10,sizeof(int),comp);
 
 
 
 
comp为函数指针的编写,列:
int comp(const void* a,const void *b)
{
   if(*((int*)a)>*((int*)b)) return 1;//返回值为正数,则交换,即为升序排列 ,0123456789
   else if(*((int*)a)<*((int*)b)) return -1;//返回值为负数,则不交换,按降序排列,9876543210
   else if(*((int*)a)==*((int*)b)) return 0;//返回值为零,也不交换,
 
}
 


int main(void)
{
 int arr[10]={5,0,3,8,1,6,7,4,9,2};
 qsort(arr,10,sizeof(int),comp);

 for(int i=0;i<10;i++)
 {
  printf("%d.",arr[i]);
 }

 return 0;
}

 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值