基本排序算法之冒泡排序
来源:互联网 发布:巨人网络收购alpha 编辑:程序博客网 时间:2024/06/07 03:50
冒泡排序的基本方法是:设待排序元素序列中的元素个数为n,首先比较第1个和第二个元素,如果前一个元素大于后一个元素,则将两个元素互换;然后对第二个(可能是刚换过来的)和第三个元素做同样的处理;重复此过程直到处理完第n-1和第n个元素。我们称它为一趟冒泡排序,结果将最大的元素移到最后一个位置,其他元素也都向排序的最终位置移动,当然个别情况下元素有可能在排序中向相反的位置移动,但元素移动的总趋势是向最终位置移动。这样每一趟冒泡就把排序吗最大的元素移到它最终的位置,最多n-1趟冒泡就能把所有的元素排好序。
优化:
在算法中可增加一个标志exchange,用以标识本趟冒泡结果是否发生了逆序和交换,如果没有发生交换则exchange = false,表示全部元素已经排好序,因而可以终止处理,结束算法。如果exchange = true,表示本趟有元素发生交换,还需执行下一趟排序
<pre name="code" class="cpp">优化的代码:
<pre name="code" class="cpp">
void bubbleSort(int* arr,int n){bool exchange = false;for (int i = 0; i < n; i++){exchange = false;for (int j = 0; j < n - i -1; j++){if (arr[j] > arr[j+1])//交换元素{int tmp = arr[j];arr[j] = arr[j+1];arr[j+1] = tmp;exchange = true;//置exchange为有交换状态}}if (exchange){break;//终止算法}}}
0 0
- 基本算法之冒泡排序
- 基本排序算法之冒泡排序
- 基本排序算法之冒泡排序
- 基本排序算法--冒泡排序
- 冒泡排序基本算法
- 基本算法-冒泡排序
- 基本排序之冒泡排序
- 基本排序之冒泡排序
- 基本排序之冒泡排序
- 基本排序之冒泡排序
- 基本排序之冒泡排序
- 【Python排序搜索基本算法】之冒泡排序
- 八大基本排序算法java实现之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 【排序算法】之冒泡排序
- 排序算法之冒泡排序
- 设计模式_访问者模式
- UVa 215 - Spreadsheet Calculator(DFS)
- 线性回归模型
- keepalived+httpd+tomcat实现高可用负载均衡
- ThreadLocal用法和实现原理
- 基本排序算法之冒泡排序
- Javascript MVC 学习笔记(二) 控制器和状态
- 字符在转换为ISO-8859-1字符集时可能会遭到破坏
- pig 编程指南笔记
- 生活感悟_1
- 真的有必要写好技术博客
- Integer to Roman
- sphinx 的问题整理
- 36、Linux-dd命令详解