原始地址:双向冒泡

通常的冒泡是单向的,而这里是双向的,也就是说还要进行反向的工作。

代码看起来复杂,仔细理一下就明白了,是一个来回震荡的方式。

写这段代码的作者认为这样可以在冒泡的基础上减少一些交换(我不这么认为,也许我错了)。

反正我认为这是一段有趣的代码,值得一看。

#include <iostream.h>
void Bubble2Sort(int* pData,int Count)
{
int iTemp;
int left =1;
int right =Count -1;
int t;
do
{
//正向的部分
for(int i=right;i>=left;i--)
{
if(pData[i]<pData[i-1])
{
iTemp = pData[i];
pData[i] = pData[i-1];
pData[i-1] = iTemp;
t = i;
}
}
left = t+1; //反向的部分
for(i=left;i<right+1;i++)
{
if(pData[i]<pData[i-1])
{
iTemp = pData[i];
pData[i] = pData[i-1];
pData[i-1] = iTemp;
t = i;
}
}
right = t-1;
}while(left<=right);
} void main()
{
int data[] = {10,9,8,7,6,5,4};
Bubble2Sort(data,7);
for (int i=0;i<7;i++)
cout<<data[i]<<" ";
cout<<"/n";
}

最新文章

  1. 问题解决:psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket &quot;/var/run/postgresql/.s.PGSQL.5432&quot;?
  2. MySQL-procedure(loop,repeat)
  3. 【uoj2】 NOI2014—起床困难综合症
  4. 如何理解java中的变量和常量
  5. Hadoop-chd4.4.0安装
  6. jsonp跨越请求百度搜索api 实现下拉列表提示
  7. Unity 教程和源码
  8. ZOJ 3725 Painting Storages(DP+排列组合)
  9. dp题目
  10. VSTO学习笔记(八)向 Word 2010 中写入表结构
  11. 每日算法之三十八:Anagrams
  12. 【百度地图API】——如何让标注自动呈现在最佳视野内
  13. [html5] 学习笔记-html5音频视频
  14. Mybatis源码解析-BoundSql
  15. Mybatis常见面试题
  16. 用js来实现那些数据结构09(集合01-集合的实现)
  17. 安装grub到U盘分区,实现多系统引导
  18. MysqL_select for update锁详解
  19. ArcGis 制图——地图图框整饰的插件式实现(一)C#
  20. BZOJ.1132.[POI2008]Tro(极角排序)

热门文章

  1. java 泛型详解(普通泛型、 通配符、 泛型接口)
  2. 使用ACE获取主机的IP地址
  3. android代码控制seekbar的样式
  4. xpath的文本获取
  5. mysql双机热备的配置步骤
  6. Java学习——何为JNDI
  7. ASP.NET - 编写让别人能读懂的代码
  8. QT+vs2010下改变可执行程序的图标
  9. PHP学习之-1.4 计算表达式
  10. perl 登陆电信猫