当前位置: 首页 > news >正文

沈阳做网站有名公司/优帮云排名自动扣费

沈阳做网站有名公司,优帮云排名自动扣费,wordpress远程特色图,网站建设jiqqsort函数简介 排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等。 看名字都知道快速排序是目前公认的一种比较好的排序算法。因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用。 这就…

qsort函数简介

排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等。 看名字都知道快速排序是目前公认的一种比较好的排序算法。因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用。 这就是qsort函数(全称quicksort)。它是ANSI C标准中提供的,其声明在stdlib.h文件中,是根据二分法写的,其时间复杂度为n*log(n)

  • 功能: 使用快速排序例程进行排序
  • 头文件:stdlib.h
  • 用法: void qsort(void* base, size_t num, size_t width, int(__cdecl*compare)(const void*, const void*));
  • 参数:
  1. 待排序数组,排序之后的结果仍放在这个数组中
  2. 数组中待排序元素数量
  3. 各元素的占用空间大小(单位为字节)
  4. 指向函数的指针,用于确定排序的顺序(需要用户自定义一个比较函数)

qsort要求提供一个自己定义的比较函数。比较函数使得qsort通用性更好,有了比较函数qsort可以实现对数组、字符串、结构体等结构进行升序或降序排序。

比较函数 int cmp(const void *a, const void *b) 中有两个元素作为参数(参数的格式不能变),返回一个int值,比较函数cmp的作用就是给qsort指明元素的大小是怎么比较的。

对int型数组排序

int num[100];
int cmp_int(const void* a, const void* b)  //参数格式固定
{return *(int *)a - *(int *)b;  
}
qsort(num, 100, sizeof(num[0]), cmp_int); 

可见,参数列表是两个空指针,现在他要去指向你的数组元素。所以转换为你当前的类型,然后取值。默认升序排列(从小到大),如果想降序排列返回*b-*a即可。

对char型数组排序(同int类型)

char word[100];
int cmp_char(const void* a, const void* b)  //参数格式固定
{return *(char *)a - *(char *)b;  
}
qsort(word, 100, sizeof(word[0]), cmp_char); 

对double型数组排序

double in[100];
int cmp_double(const void* a, const void* b)  //参数格式固定
{return *(double *)a > *(double *)b ? 1 : -1;   //特别注意
}
qsort(in, 100, sizeof(in[0]), cmp_double); 

注意 在对浮点或者double型的一定要用三目运算符 ,因为要是使用像整型那样相减的话,如果是两个很接近的数则可能返回一个很小的小数(大于-1,小于1),而cmp的返回值是int型,因此会将这个小数返回0,系统认为是相等,失去了本来存在的大小关系

对字符串进行排序

char word[100][10];
int cmp_string(const void* a, const void* b)  //参数格式固定
{return strcmp((char *)a, (char *)b);
}
qsort(word, 100, sizeof(word[0]), cmp_string); 

原文链接:https://blog.csdn.net/zhao888789/article/details/79186619

http://www.jmfq.cn/news/5064427.html

相关文章:

  • 安卓优化神器/优化大师客服电话
  • 网页客服系统源码/济南网站优化公司哪家好
  • 网站做视频监控方案/seo竞价推广
  • 网页网站开发平台/链接交换公司
  • 网站恢复正常/手机百度2020最新版
  • 什么是优化型网站/爱站网关键词挖掘工具站长工具
  • 静态展示网站多少钱/小程序开发模板
  • vb2010做网站/抖音seo公司
  • 公司做网站需要准备什么条件/域名怎么查
  • 上海 企业 网站建设/备案域名交易平台
  • 橙子建站发来的验证码安全吗/搜索到的相关信息
  • 网站建设公司发展前景/seo服务公司招聘
  • 上海企业微信网站制作/关键词优化话术
  • 网站建设的主要缺陷/网店代运营十大排名
  • 企业每年向工商网站做申报/seo常用工具包括
  • 漳州网站建设优化推广/查找网站
  • wordpress自定义文章/吉林网络seo
  • 做纸巾定制的网站/营销推广ppt
  • 久久建设集团有限公司/seo怎么做关键词排名
  • 医院网站建设 招标/电商网站开发需要多少钱
  • 建设网站去哪里找/域名检测工具
  • 网站怎么谈设计/杭州哪家seo公司好
  • 网站做cpa赚钱/搜索引擎推广培训
  • 超市如何建立网站/seo研究中心晴天
  • 九江 网站建设公司/seo外链
  • 公司网站高端/如何发布自己的网站
  • 湖南住房和城乡建设网门户网站/湖南疫情最新情况
  • 公司电子商务平台和企业网站建设和维护工作管理办法/怎样做百度推广网页
  • 南宁在哪里可以做网站/百度云盘官网
  • 邢台企业建站/百度发广告需要多少钱