算法笔记(四) 鸡尾酒排序
来源:互联网 发布:淘宝ifashion代表什么 编辑:程序博客网 时间:2024/05/16 07:17
请尊重本人的工作成果,转载请留言,并说明转载地址,谢谢。地址如下:
http://blog.csdn.net/fukainankai/article/details/37505607
鸡尾酒排序,也就是定向冒泡排序, 鸡尾酒搅拌排序, 搅拌排序 (也可以视作选择排序的一种变形), 涟漪排序, 来回排序 or 快乐小时排序, 是冒泡排序的一种变形。此算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。
鸡尾酒排序的思路与冒泡排序很像,只不过它在冒泡排序上有一点点小的变动,当查找完毕一个最大值后,它会反过来查找一次最小值。表面看起来,似乎和冒泡排序没什么区别,但实际上,这种方法,在大多数数据有序的情况下,使得排序效率很高。
下面是演示程序中,预计算的实现代码:
void CocktailSort::Start(){int *pData = new int[m_nCount];memcpy(pData, m_pData, m_nCount*sizeof(int));m_algSteps.clear();int nLeft = 0;int nRigtht = m_nCount-1;bool bSwap = true;while (bSwap){bSwap = false;for (int j=nLeft; j<nRigtht; j++){if (pData[j] > pData[j+1]){Swap(j,j+1, pData);bSwap = true;}}nRigtht--;for (int j=nRigtht; j>nLeft; j--){if (pData[j] < pData[j-1]){Swap(j, j-1, pData);bSwap = true;}}nLeft++;}m_nCurStep = 0;}
如有错误,欢迎大家指正,也希望得到大家的建议。
参考资料:http://zh.wikipedia.org/wiki/%E9%B8%A1%E5%B0%BE%E9%85%92%E6%8E%92%E5%BA%8F
0 0
- 算法笔记(四) 鸡尾酒排序
- 排序算法四:鸡尾酒(双向冒泡)排序
- 鸡尾酒排序算法(java)
- 排序算法--鸡尾酒排序
- 排序算法--鸡尾酒排序
- 鸡尾酒排序算法
- 鸡尾酒排序算法
- 【C++】鸡尾酒算法排序
- 排序算法之鸡尾酒排序
- 排序算法之鸡尾酒排序
- 排序算法之鸡尾酒排序
- 排序算法之鸡尾酒排序
- 排序算法(二)鸡尾酒排序算法(双向冒泡)
- 基础算法系列(六)排序算法之鸡尾酒排序
- 经典算法——鸡尾酒排序(冒泡算法改良)
- (31)鸡尾酒排序
- 经典算法之鸡尾酒排序
- 经典算法之鸡尾酒排序
- B - Supermean
- 明升收藏
- map排序
- JDBC连接数据库
- Unity3d Log信息,发布版自动消失
- 算法笔记(四) 鸡尾酒排序
- leetcode: Unique Binary Search Trees II
- Windows下Android开发环境配置
- PB 调用.NET COM组件(1)
- 遍历一个map
- 一步步教你搭建TinyOS2.1.2开发环境
- Ubuntu 12.04 中安装storm
- 在webview中addJavascriptInterface,js调用java函数打包出现不响应,即使对混淆处理
- 分享一个textView右上角的添加小红点的 tips