冒泡排序(优化版本)
2015-04-11 11:31
211 查看
对于类似于(3,2,1,5,6,7)的序列,可以看出这个序列的后缀是已经有序的,所以在前一趟扫描后发现后缀有序,在下一次扫描时就忽略有序的后缀,而不是仅仅长度减一,这样就能避免无谓的扫描。
代码如下:
int bubble(int vec[], int lo, int hi);
void bubbleSort(int vec[], int lo, int hi)
{
while(lo + 1 < (hi = bubble(vec, lo, hi)));
}
int bubble(int vec[], int lo, int hi)
{
int last, tmp;
while(++lo < hi)
{
if(vec[lo] < vec[lo-1])
{
tmp = vec[lo];
vec[lo] = vec[lo-1];
vec[lo-1] = tmp;
last = lo;
}
}
return last;
}
代码如下:
int bubble(int vec[], int lo, int hi);
void bubbleSort(int vec[], int lo, int hi)
{
while(lo + 1 < (hi = bubble(vec, lo, hi)));
}
int bubble(int vec[], int lo, int hi)
{
int last, tmp;
while(++lo < hi)
{
if(vec[lo] < vec[lo-1])
{
tmp = vec[lo];
vec[lo] = vec[lo-1];
vec[lo-1] = tmp;
last = lo;
}
}
return last;
}
相关文章推荐
- 排序-冒泡排序最终优化版本
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序
- 冒泡排序优化 java版本
- centos6.6 版本操作系统优化
- 冒泡排序优化
- 简单冒泡排序及优化
- [FAQ18143]L/M版本首次/非首次开机时间优化
- 高版本myeclipse破解以及优化
- 插入排序和冒泡排序(Swift版本)
- 排序----冒泡排序的优化_选择排序_插入排序
- MyEclipse优化设置(最详细版本)
- Lua版本冒泡算法及其优化
- 冒泡排序及算法优化
- MyEclipse x.x各版本终极优化配置指南
- 佳博打印机android版本代码优化
- Apache安全优化:设置防盗链,隐藏版本信息 (内含Apache源码包和抓包工具)
- 冒泡排序和优化
- nginx安全优化之隐藏版本
- 冒泡排序及其优化