冒泡算法及其优化
2014-06-28 14:58
197 查看
一般的冒泡算法是:
可以将内嵌的for循环修改为
还可以进一步优化,数组的后半一部分可能是已经排序好的,前半部分是无序的,可以设置一个参数,标记是有序和无序的分界线,循环时的判断标准就是这个参数
冒泡排序毕竟是一种效率低下的排序方法,在数据规模很小时,可以采用。数据规模比较大时,最好用其它排序方法
void BullSort( int *arr ,int len) { for(int i =0 ;i <len ;i++) for (int j =1 ;j< len ;j++) if (arr[j-1] > arr[j]) swap(arr[j-1],arr[j]); }现在可以更加优化,因为第N排序完成后,最后N个数都是有序的,且是最大。
可以将内嵌的for循环修改为
for( int j =1 ;j<len -i ;j++)
还可以进一步优化,数组的后半一部分可能是已经排序好的,前半部分是无序的,可以设置一个参数,标记是有序和无序的分界线,循环时的判断标准就是这个参数
void BullSort(int *arr ,int len) { int flage = n, k; while(flage) { k = flage; flage = 0; for(int i = 1 ;i <k ; i++) if (a[j-1] > a[j]) { swap(a[j-1],a[j]); flage = j; } } }
冒泡排序毕竟是一种效率低下的排序方法,在数据规模很小时,可以采用。数据规模比较大时,最好用其它排序方法
相关文章推荐
- 排序算法——冒泡算法及其优化
- Lua版本冒泡算法及其优化
- 常见算法学习及其Java实现--冒泡算法实现
- 插入排序及其优化
- CPU、内存、IO虚拟化关键技术及其优化探索
- opencv-特征匹配及其优化
- 【算法导论-006】冒泡排序及其优化(BubbleSort)
- css 原理及其优化
- 数据库索引-最左前缀原理及其优化
- 二分法及其优化
- 浏览器内核、页面呈现原理及其优化
- 64位编程技术及其优化
- 求100以内素数的5中基本方法及其优化
- mysql优化-- int类型解析及其优化
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序
- 深度学习优化方法:梯度下降法及其变形
- 负权边的最短路径--Bellman-Ford算法及其优化
- SSE图像算法优化系列八:自然饱和度(Vibrance)算法的模拟实现及其SSE优化(附源码,可作为SSE图像入门,Vibrance算法也可用于简单的肤色调整)。
- Bellman-Ford算法及其优化
- 排序算法—比较排序之插入排序及其优化