qsort()

来源:互联网 发布:淘宝dsr计算器 编辑:程序博客网 时间:2024/06/06 00:32
qsort():

原型:
_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*));
解释: qsort ( 数组名 ,元素个数,元素占用的空间(sizeof),比较函数)
比较函数是一个自己写的函数 遵循 int com(const void *a,const void *b) 的格式。
当a b关系为 > < = 时,分别返回正值 负值 零 (或者相反)。
使用a b 时要强制转换类型,从void * 转换回应有的类型后,进行操作。
数组下标从零开始,个数为N, 下标0-(n-1)。
实例:
int compare(const void *a,const void *b)
{
  return *(int*)b-*(int*)a;   
}
int main()
{
  int a[20]={2,4,1,23,5,76,0,43,24,65},i;
  for(i=0;i<20;i++)
  cout<<a[i]<<endl;
  qsort((void *)a,20,sizeof(int),compare);
  for(i=0;i<20;i++)
  cout<<a[i]<<endl;
  return 0;
}
相关:
1)why你必须给予元素个数?
因为阵列不知道它自己有多少个元素
2)why你必须给予大小?
因为 qsort 不知道它要排序的单位.
3)why你必须写那个丑陋的、用来比较俩数值的函式?
因为 qsort 需要一个指标指向某个函式,因为它不知道它所要排序的元素型别.
4)why qsort 所使用的比较函式接受的是 const void* 引数而不是 char* 引数?
因为 qsort 可以对非字串的数值排序.
当然对于排序函数还有其他的用法,今天就只说这些,我也正在学习中,上述只是发表了一点自己的拙见,最后声明上诉实例是基于VC++2008。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 不知道绑定支付宝的微博账号怎么办 银行卡丢了补办后支付宝账户怎么办 未激活的银行卡被锁定了怎么办 手机网银上的钱被盗走了怎么办 支付宝支付失败银行卡扣了钱怎么办 小程序的二次验证码丢失怎么办 苹果手机不小心购买游戏币怎么办 在淘宝买的洗衣粉是假的怎么办 京东快递电话填错了怎么办 新买的手机卡被注册过支付宝怎么办 手机卡掉了别人登陆支付宝怎么办 手机卡注销了支付宝欠的钱怎么办 手机丢了支付宝和微信里的钱怎么办 新办的手机号已被注册支付宝怎么办 新办的移动卡不能注册支付宝怎么办 新办的宝卡支付宝注册过怎么办 办支付宝后银行卡被盗刷怎么办 微信扫二维码送平衡群发了怎么办车 拼多多没收到货点了确认收货怎么办 拼多多收货地址填错了怎么办 京东订单申请退款已发货怎么办 手机播放声音的地方进水了怎么办 手机出声音的地方进水了怎么办 手机听声音的地方进水了怎么办 装修公司我只要基装她不肯怎么办 雄迈未来家庭忘记账号和密码怎么办 地方文件和国家政策有冲突怎么办? 网上贷款放款成功没有到账怎么办 我来贷放款中不到账怎么办 手持身份证被别人网贷了怎么办 身份证被别人做了网贷怎么办 身份证丢了被别人网贷了怎么办 户口身份证被注销了网贷怎么办 首付交了贷款办不下来怎么办 付首付后贷款没有批下来怎么办 交了首付贷款没有办下来怎么办 买房交了首付贷款没批下来怎么办 交完首付办不下来贷款怎么办 房子交了首付贷款办不下来怎么办 浦发银行办理房贷流水不够怎么办 房贷审批过程中突然换工作怎么办