经典排序算法 - 鸡尾酒排序Cocktail sort
2013-03-28 23:23
225 查看
鸡尾酒排序基于冒泡排序,双向循环
还是看例子吧,给定待排数组[2 3 4 5 1]
第一趟过去时的每一步
第一步迭代,2 < 3不换
[2 3 4 5 1]
第二步迭代,3 < 4不换
[2 3 4 5 1]
第三步迭代,4 < 5不换
[2 3 4 5 1]
第四步迭代,5 > 1交换
[2 3 4 1 5]
第一趟回来时的第一步,鸡尾酒一次到头后就回返回来,再到头后再过去,来回比,一个来回能排两个数字
第五步迭代,1 < 5不交换
[2 3 4 1 5]
第六步迭代,1 < 4交换
[2 3 1 4 5]
第七步迭代,1 < 3交换
[2 1 3 4 5]
第八步迭代,2 > 1交换
[1 2 3 4 5]
排序完毕,顺序输出结果即可得[ 1 2 3 4 5]
如何判断排序结束了?
假如一趟来回没有交换任何数字,则表示该数组已经有序了,可以设置了个变量表示有没有交换过
还是看例子吧,给定待排数组[2 3 4 5 1]
第一趟过去时的每一步
第一步迭代,2 < 3不换
[2 3 4 5 1]
第二步迭代,3 < 4不换
[2 3 4 5 1]
第三步迭代,4 < 5不换
[2 3 4 5 1]
第四步迭代,5 > 1交换
[2 3 4 1 5]
第一趟回来时的第一步,鸡尾酒一次到头后就回返回来,再到头后再过去,来回比,一个来回能排两个数字
第五步迭代,1 < 5不交换
[2 3 4 1 5]
第六步迭代,1 < 4交换
[2 3 1 4 5]
第七步迭代,1 < 3交换
[2 1 3 4 5]
第八步迭代,2 > 1交换
[1 2 3 4 5]
排序完毕,顺序输出结果即可得[ 1 2 3 4 5]
如何判断排序结束了?
假如一趟来回没有交换任何数字,则表示该数组已经有序了,可以设置了个变量表示有没有交换过
相关文章推荐
- 常见经典排序算法
- 经典排序算法 - 冒泡排序Bubble sort
- 8大经典排序算法比较
- 五种经典排序算法的实现(冒泡、归并、快排、堆排序、希尔)
- C#实现所有经典排序算法
- 经典排序算法--插入排序 希尔排序 归并排序
- 十大经典排序算法的 JavaScript 实现
- 经典排序算法 - 计数排序Counting sort
- 8大经典排序算法
- 【每日算法】C语言8大经典排序算法(2)
- Python练手之6种经典排序算法
- 十大经典排序算法皇冠体育足球竞猜源码下载最强总结(含JAVA代码实现)
- 一些经典排序算法的实现(C++实现)
- 【归纳整理】十大经典排序算法的简单C++实现
- 经典的排序算法
- C#实现所有经典排序算法
- JavaScript十大经典排序算法
- 十大经典排序算法
- 十大经典排序算法
- 4种经典排序算法总结