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

西安网站建设报价宁夏石嘴山市城乡建设局提意见网站

西安网站建设报价,宁夏石嘴山市城乡建设局提意见网站,毕业设计2网站建设,vs2010做网站时间控件hello大家好#xff0c;我是c语言boom家宝#xff0c;今天为大家分享的博客内容是qsort快速排序#xff0c;简称快排的一个知识点的讲解。 在讲到快排之前#xff0c;允许博主先提一嘴冒泡排序。大家在c语言的学习过程中#xff0c;冒泡排序是必不可少会学习到的一个思想我是c语言boom家宝今天为大家分享的博客内容是qsort快速排序简称快排的一个知识点的讲解。 在讲到快排之前允许博主先提一嘴冒泡排序。大家在c语言的学习过程中冒泡排序是必不可少会学习到的一个思想那么冒泡排序是怎么样的呢我们看代码 int main() {int arr[10] { 9,8,7,6,5,4,3,2,1,0 };int i 0;int sz sizeof(arr) / sizeof(int);for (i 0; i sz - 1; i) { //一共要交换多少次数int j 0;for (j 0; j sz - 1 - i; j) { //每一次交换的元素个数if (arr[j] arr[j 1]) {int temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}}for (i 0; i sz; i) {printf(%d , arr[i]);}return 0; } 这样就完成一个冒泡排序啦非常的简单。但是冒泡排序简单是简单可是效率十分的低。它通过重复很多次的挨个比较然后交换的方式达成最后的排序效果。如果数组内容非常非常的多呢那么排序所用的时间将会非常的多。其次上面的这个冒泡排序只适用于排序整型。如果我又需要对其他类型的数据排序如浮点型字符型等那么就需要重新写一个冒泡排序的代码十分的复杂。基于这几点原因所以博主将讲解一下qsort快速排序的使用 库函数qsort快排适用于任何类型数据的排序。使用时需要引用stdlib.h头文件 博主在官网上查询qsort的使用方法它们是这样介绍的如图 我们再来看一下使用qsort库函数需要调用的参数是什么 那么qsort函数的返回值是什么如图 也就是说如果p1指向的元素值小于p2指向的元素值返回一个小于0的数。反之返回一个大于0的数。如果相等则返回0. 总结一下当我们要使用qsort库函数的时候需要传的参数如下。他们各自表示的意思也有打在备注里面方便大家理解。如果不知道什么是函数指针请移步链接http://t.csdn.cn/FtRCn博主有在里面对函数指针进行讲解这很重要因为要想使用qsort库函数必须要创建一个函数指针才可以。 void qsort(void* base, //指向了需要排序的数组的第一个元素size_t num, //排序的元素个数size_t size, //一个元素的大小单位是字节int (*cmp)(const void*,const void*) //函数指针类型//这个函数指针指向的函数需要能够比较base指向数组中的两个元素); 细心的阅读朋友会发现这个函数指针的参数部分类型是const void*类型。而void*这个类型有一些特殊void*不能直接进行解引用操作也不能直接进行指针的运算。但是void*指针是无具体类型的指针它可以接收任意类型的地址。这一点就十分妙哉因为我们在使用函数过程中并不会提前知道你具体会传过来什么类型的参数。如果还像上面冒泡排序一样那么就写死了就只能完成一个类型数据的排序。 既然不能直接解引用那我们就可以在使用的时候把它强制转换成我们需要的类型。具体实现如下 #include stdio.h #include stdlib.hint cmp_int(const void* p1, const void* p2) {return(*(int*)p1 - *(int*)p2); }void test1() {int arr[10] { 9,8,7,6,5,4,3,2,1,0 };int sz sizeof(arr) / sizeof(int);//qsort默认排的是升序qsort(arr, sz, sizeof(arr[0]), cmp_int);int i 0;for (i 0; i 10; i) {printf(%d , arr[i]);} } int main() {test1();return 0; } qsort默认是排成升序如果想排成降序我们只需要把上述代码中的return(*(int*)p1 - *(int*)p2);改成return(*(int*)p2 - *(int*)p1);就可以了。上述代码编译结果如下 当然前面也说到过qsort可以排序任何一个类型的。博主这里再举例用qsort来排序结构体又是怎么排序的呢代码如图 我们只需要按照格式去传参数然后写一个函数指针就可以了。qsort有着十分高效的效率各位阅读朋友可以自己尝试一下去写一个快排出来
http://www.yutouwan.com/news/102325/

相关文章:

  • 连云港网站建设报价坯子库登录成wordpress
  • python flask做网站我的世界做壁纸网站打不开
  • 网站广告动图怎么做网站建设需要注意哪些内容
  • 菜鸟网站做图移动端快速建站的方法
  • 网站上线流程 配合人员青岛网信信息科技有限公司
  • 海外网站代理无锡seo网站推广费用
  • 门户网站建设 管理 自查报告哪里有服务好的深圳网站建设
  • 自己做网站需要收费吗上海企业黄页
  • 网站 谁建设谁负责心理教育网站建设目的
  • 重庆网站设计制作网站wordpress电脑主题
  • 上海专业网站制作设计公司哪家好受欢迎的扬中网站建设
  • 网站建设招标书技术介绍网站建设规划过程和
  • 网站图片上传不了是什么原因wordpress 管理员
  • 兰州网站哪里做衡水网站网站建设
  • 南京网站快速排名提升顺企网吉安网站建设
  • 哈尔滨巨耀网站建设.net网站开发工程师
  • 西安高校定制网站建设公司推荐网易企业邮箱是什么
  • 义乌企业网站建设为网站开发
  • 什么是网站的栏目和板块哪个网站做美食自媒体更好
  • 怎么利用QQ空间给网站做排名怎么开无货源网店赚钱
  • 宁波企业做网站网站和微信公众号建设
  • 建设银行网站首页打三亚门户
  • 西部数码网站助手教程商品推广软文写作500字
  • 网站建设与维护岗位职责wordpress 论坛app
  • 网站审核文件绍兴注册公司
  • 网站svg使用北约网络防御中心
  • 网站后台更新 前台不显示wordpress注册不发送邮件
  • 如何重启网站服务器网页游戏排行2019
  • 免费建立企业网站广西建设厅官方网站文件通知
  • 上海营销型网站建设费用wordpress 主题 恢复