冒泡排序演进优化
2017-03-26 21:18
197 查看
冒泡演进优化
要点:相邻两两相比,每次循环将选择最大(小)。类气泡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; } } } }
相关文章推荐
- 冒泡排序的实现及其优化。
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序
- 【公开课】【阿里在线技术峰会】何登成:AliSQL性能优化与功能突破的演进之路
- 关于大型网站技术演进的思考(二十一)--网站静态化处理―web前端优化―下【终篇】(13)
- 冒泡排序的优化算法
- 详解冒泡排序和对其优化的Shaker 排序
- 【算法1】之冒泡排序极其优化
- 冒泡排序 及其两次优化
- 交换排序之 冒泡排序(优化) (稳定)
- 排序算法入门之冒泡排序优化
- 冒泡排序及其优化
- Java编写冒泡排序及优化
- 冒泡排序优化
- 冒泡排序基本代码及其优化
- 求单独出现的数,冒泡排序优化,strncpy的优化
- 优化的冒泡排序
- 关于冒泡排序的优化
- PHP之冒泡排序的优化
- 第十七篇:内部排序之二:冒泡排序和选择排序(改进优化,附完整源码)
- 1.1--选择问题(一维数组中选择第K个最大值:冒泡排序及优化的使用)