冒泡排序演进优化
来源:互联网 发布:mysql删除表语句 编辑:程序博客网 时间:2024/05/27 06:53
冒泡演进优化
要点:相邻两两相比,每次循环将选择最大(小)。类气泡
void bubble(int a[],int n){ int tmp; for(int i=0;i<n-1;i++) { for(int j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { //两个数交换有多种方法 tmp = a[j]; a[j] = a[j+1]; a[j] = tmp; } } }}int main(){ int arr[] = {3,5,5,7,2,8,4}; bubble(arr,sizeof(arr)/sizeof(arr[0]));//注意:求数组的元素个数 return 0;}
优化1
若无交换则已排序
void bubble1(int a[],int n){ int tmp,flag; for(int i=0;i<n-1;i++) { flag = 0; for(int j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { flag = 1; tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } if(flag == 0) break; }}
优化2就是
记录交换的最后位置,则后面的无交换则为有序,并把最后的位置作为下次结束位置
可以与优化1类似 优化1是整体看,优化2是部分
void bubble2(int a[],int n){ int tmp,k,flag=n-1; for(int i=0;i<flag;i++) { k = flag; flag = 0; for(int j=0;j<k;j++) { if(a[j]>a[j+1]) { flag = j; tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } }}
0 0
- 冒泡排序演进优化
- 一、冒泡排序演进
- 冒泡排序优化法
- 优化冒泡排序算法
- Java优化冒泡排序
- 冒泡排序 优化
- 冒泡排序优化
- 冒泡排序及其优化
- 冒泡排序及其优化
- 冒泡排序和优化
- 优化冒泡排序
- 冒泡排序的优化
- 冒泡排序及优化
- 优化冒泡排序
- 冒泡排序优化
- 冒泡排序和优化
- 冒泡排序优化
- 冒泡排序及其优化
- L3-013. 非常弹的球(2017初赛)
- 2016-2017 ACM-ICPC Northeastern European Regional Contest (NEERC 16) Gym
- 数学建模方法汇总-百度脑图
- 历届试题 剪格子
- c/c++整理--const和static关键字
- 冒泡排序演进优化
- No.455 Assign Cookies
- VI中显示行号的方法
- x86 x64, thumb, arm CPU simple inline-hook framework
- 使用mySQL部分建议
- Git基本配置及使用_持续更
- 进程切换、创建与退出流程详解
- CSDN日报20170326——《谈谈程序员解决问题的能力》
- 【死磕Java并发】-----J.U.C之重入锁:ReentrantLock