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

装企工长网站开发上海千途网站建设

装企工长网站开发,上海千途网站建设,成都网站优化实战,北京网站建设设计公司浩森宇特❤博主CSDN:啊苏要学习 ▶专栏分类#xff1a;C语言◀ C语言的学习#xff0c;是为我们今后学习其它语言打好基础#xff0c;C生万物#xff01; 开始我们的C语言之旅吧#xff01;✈ 目录 前言#xff1a; 一.分析Bubble_sort 二.解决措施 三.模拟实现 前言#xff… ❤博主CSDN:啊苏要学习   ▶专栏分类C语言◀   C语言的学习是为我们今后学习其它语言打好基础C生万物   开始我们的C语言之旅吧✈ 目录 前言 一.分析Bubble_sort 二.解决措施 三.模拟实现 前言 如何将冒泡排序从只排序整型到可以排序任意类型这篇博文将给你一个答案。 一.分析Bubble_sort void Bubble_sort(int arr[], int sz) {int i 0;for (i 0; i sz; i){int j 0;for (j 0; j sz - 1 - i; j){int tmp 0;if (arr[j] arr[j 1]){tmp arr[j];arr[j] arr[j 1];arr[j 1] tmp;}}} } 问题一这种实现的冒泡排序在形参部分写固定接收整型数组只能排序整型不能排序其它类型。 问题二在相邻元素的比较部分不一定是整型进行比较如果是字符串呢所以比较部分要根据情况选择合适的比较方法。 问题三相应的如果不是整型对于相邻元素的交换也不能这么简单通过创建临时变量完成交换。 二.解决措施 回想库里的qsort数组使用了void*类型可以解决问题一与此同时要传递元素个数和元素大小作信息补充。 问题二的解决使用函数指针就可以解决因为使用方知道自己要比较什么类型让他实现比较的方法传参进来使用即可。 解决问题三另外封装一个Swap交换函数就可以了解决了这些问题后就可以开始实现我们的想法了。 三.模拟实现 //元素比较方法 int cmp_int(const void* p1, const void* p2) {return *(int*)p1 - *(int*)p2; }//元素交换一个字节一个字节换 //一个元素有size个字节 void Swap(char* buf1, char* buf2, int size) {int i 0;char tmp 0;for (i 0; i size; i){tmp *buf1;*buf1 *buf2;*buf2 tmp;buf1;buf2;} }//base可以接收任意类型的数组 void Bubble_sort(void* base, int num, int size, int (*cmp)(const void*, const void*)) {int i 0;for (i 0; i num; i){int j 0;for (j 0; j num - 1 - i; j){//比较数组下标为j和j1的两个元素if (cmp((char*)base j * size, (char*)base (j 1) * size) 0){//升序交换的起始地址和比较的两个地址一样。Swap((char*)base j * size, (char*)base (j 1) * size, size);}}} } 用arr[j]和arr[j1]来说明容易理解现在在比较下标为j和j1对于的两个元素而cmp函数接收两个地址作为参数。 base是一个void*类型那么如何表示这两个元素的地址就需要解决我们想到所有数据都可以用char*n解决 于是我们把base强转成char*类型j下标的元素就让指针加上一个j*sizej1下标的指针加上j1*size。     对于Swap交换也是我们怎么保证两个元素的内容彻底交换完毕呢仔细一想只有char*类型能够不遗漏任何一个字节。 所以参数设计的时候就直接写char*方便后面对buf1和buf2直接进行加法运算。 最后读者可以自行写出代码尝试对其它数据类型进行排序。如果这篇博文对你有帮助那么可以点个赞支持一下噢。 结语希望读者读完有所收获在学C的路上祝福我们能越来越C!✔   读者对本文不理解的地方或是发现文章在内容上有误等请在下方评论区留言告诉博主哟~也可以对博主提出一些文章改进的建议感激不尽最后的最后   ❤求点赞求关注你的点赞是我更新的动力一起努力进步吧。
http://www.zqtcl.cn/news/846324/

相关文章:

  • 西乡网站建设政务网站开发协议
  • 美食网站开发环境北京app网站建设
  • 郑州网站建设推广渠道重庆网站建设公司下载
  • 宜宾营销型网站建设网站建设需要什么资质
  • 重庆建网站有哪些学跨境电商要多少钱
  • 上海建设钢结构工程网站深圳电器公司排名
  • 淄博网站建设找淄深网江苏省建设斤网站
  • 免费行情软件app网站红色西安做网站印象网络
  • 宁波网站建设小程序开发聊城wap网站建设
  • 陇南网站网站建设泰安网站的建设
  • 哪个网站有介绍拿到家做的手工活建设银行网站怎么修改手机号码吗
  • 网站地图怎么用淘宝客推广网站建设
  • 外贸零售网站建设购物网站支付功能怎么做
  • 淘宝客如何做自己的网站西宁工程建设招聘信息网站
  • 天津都有哪些制作网站郑州官网首页
  • 个人网站开发模式海南省建设公司官网
  • edu网站开发做爰视频在线观看免费网站
  • 安防公司网站模板网站建设模板下载
  • 贵阳网站建设方案维护一 建设茶叶网站前的市场分析
  • 山东东营建设网官方网站百度电脑版
  • 做网站前途如何海尔网站建设推广
  • 投资公司网站建设万网域名安装wordpress
  • 高端网站建设企业官网建设wordpress相似推荐
  • php网站开发师招聘wordpress怎么换头像
  • 门禁考勤网站建设广西建设
  • 互助盘网站怎么做的织梦免费企业网站
  • 做羊毛毡的网站电子商务网站建设品牌
  • 用vue做商城网站常用的js教做发型的网站
  • 江西省寻乌县建设局网站广州网站建设一般多少钱
  • 做网站公司郑州郑州的网站建设公司哪家好网站开发word