跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > 冒泡排序(C语言详解)

冒泡排序(C语言详解)

时间:2024-03-24 16:18:25 来源:网络cs 作者:峨乐 栏目:卖家故事 阅读:

标签: 语言 
阅读本书更多章节>>>>

原理:从左到右一次比较,如果左侧数字比右侧数字大(小),则两数交换,否则比较下一             组数字,每一次大循环比较可以将乱序的最右侧数字改为最大(最小),每一次小循环的比             较次数相对于前一次要减一


动态用例:

升序排序代码详解:

void bubble_sort (int arr[],int sz)   //将数组和元素个数传过来{  for(int i=0;i<sz-1;i++)   //每次大循环可以确定乱序最后一个数字,最多需要sz-1次循环  {    int tmp=0;      for(int j=0;j<sz-1-i;j++)//每次小循环,因为已经确定最后的i个元素,剩下需要比较的元素个数就为sz-i,而需要比较的次数就为sz-1-i      {        if(arr[j]>arr[j+1])//相邻两个数比较,如过前一个数比后一个数大就交换       {int t=arr[j];arr[j]=arr[j+1];arr[j+1]=t;tmp=1;       }      }if(tmp==0)break;  }}

降序排序代码详解:

void bubble_sort (int arr[],int sz)   //将数组和元素个数传过来{  for(int i=0;i<sz-1;i++)   //每次大循环可以确定乱序最后一个数字,最多需要sz-1次循环  {    int tmp=0;      for(int j=0;j<sz-1-i;j++)//每次小循环,因为已经确定最后的i个元素,剩下需要比较的元素个数就为sz-i,而需要比较的次数就为sz-1-i      {        if(arr[j]<arr[j+1])//相邻两个数比较,如过前一个数比后一个数小就交换       {int t=arr[j];arr[j]=arr[j+1];arr[j+1]=t;tmp=1;       }      }if(tmp==0)break;  }}

两者排序方式唯一的区别:

1.升序排序:如果前一个数比后一个数大,二者就交换,所以用>

2.降序排序:如果前一个数比后一个数大,二者就交换,所以用<

tmp的作用:

每一次大循环,我们都将tmp设置为0,在每一次小循环里面,如果两个数进行了交换,我们就将tmp改为1,出这次大循环判断一下tmp是否为0,如果为0,那么本次循环没有进行交换,也就是数组已经排好序,直接退出大循环,否则继续进行循环。

阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-03-24/148009.html,文章来源:网络cs,作者:峨乐,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论