C / C++算法学习笔记(7)-双向冒泡
2024-09-17 21:48:28
原始地址:双向冒泡
通常的冒泡是单向的,而这里是双向的,也就是说还要进行反向的工作。
代码看起来复杂,仔细理一下就明白了,是一个来回震荡的方式。
写这段代码的作者认为这样可以在冒泡的基础上减少一些交换(我不这么认为,也许我错了)。
反正我认为这是一段有趣的代码,值得一看。
#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";
}
最新文章
- 问题解决:psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket ";/var/run/postgresql/.s.PGSQL.5432";?
- MySQL-procedure(loop,repeat)
- 【uoj2】 NOI2014—起床困难综合症
- 如何理解java中的变量和常量
- Hadoop-chd4.4.0安装
- jsonp跨越请求百度搜索api 实现下拉列表提示
- Unity 教程和源码
- ZOJ 3725 Painting Storages(DP+排列组合)
- dp题目
- VSTO学习笔记(八)向 Word 2010 中写入表结构
- 每日算法之三十八:Anagrams
- 【百度地图API】——如何让标注自动呈现在最佳视野内
- [html5] 学习笔记-html5音频视频
- Mybatis源码解析-BoundSql
- Mybatis常见面试题
- 用js来实现那些数据结构09(集合01-集合的实现)
- 安装grub到U盘分区,实现多系统引导
- MysqL_select for update锁详解
- ArcGis 制图——地图图框整饰的插件式实现(一)C#
- BZOJ.1132.[POI2008]Tro(极角排序)