冒泡排序法的改进
改进 冒泡排序
2023-09-14 08:58:00 时间
最近在看算法书籍,碰见了在大一就接触到的冒泡排序,熟悉而亲切,但是,当遇见要求排序列为:{3,6,4,2,11,10,6‘}时,就发现问题了。之前的冒泡排序算法会进行2趟无意义的排序,至此,将原来的算法添加标记变量,以达到控制排序趟数的效果,现将源码贴出共享。
#include "stdio.h" /******************************************** 改进后的冒泡排序 ********************************************/ void bubblesort(int k[],int n) int i,j,tmp,flag=1; for(i=1;i n flag==1;i++) //执行n-1趟排序 flag=0; for(j=0;j j++) if(k[j] k[j+1]) //数据交换 tmp=k[j+1]; k[j+1]=k[j]; k[j]=tmp; flag=1; printf("\n改进后共排序%d趟。",--i); /******************************************** ********************************************/ void bubble_sort(int k[],int n) int i,j,tmp; for(i=1;i i++) //执行n-1趟排序 for(j=0;j j++) if(k[j] k[j+1]) //数据交换 tmp=k[j+1]; k[j+1]=k[j]; k[j]=tmp; printf("\n改进前共排序%d趟。",--i); main() //初始化序列 int i,a[7]={3,6,4,2,11,10,6}; printf("The orginal data array is\n"); //显示原序列中的元素 for(i=0;i i++) printf("%d ",a[i]); //执行冒泡排序 bubblesort(a,7); bubble_sort(a,7); printf("\nThe result of buble sorting for the array is\n"); for(i=0;i i++) //输出排序后的结果 printf("%d ",a[i]); printf("\n"); }
相关文章
- .NET 7 性能改进 -- 至今为止最快的.NET平台
- 如何通过精益流程改进提高效率?
- 最新版水果FL Studio21新版本更新全解析!80项更新与改进!
- Go module基础使用及Go 1.16中的改进
- 改进的自适应中值滤波算法 去除椒盐噪声 python 代码实现
- 顺序表应用4-2:元素位置互换之逆置算法(数据改进)(SDUT 3663)
- [下载] 谷歌浏览器Chrome v88稳定版发布 带来多处功能改进和错误修复
- 改进你的 Ansible 剧本的 4 行代码
- Linux Lite 5.0 发布,带有 UEFI 支持和其他重大改进
- 微软发布Windows App SDK 1.0.0实验版本 带来WinUI 3等改进
- Linux 重复次数:持续改进(linux重复次数)
- Oracle SET更新实现数据持续改进(oracle set更新)
- Oracle 11归档的终点学习与改进(oracle11归档终点)
- 科学家警告:迫切需要改进对哺乳动物细胞的生物医学研究报告
- 一个改进的UBB类
- C++冒泡排序数据结构、算法及改进算法