算法----鸡尾酒排序

Posted mc-curry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法----鸡尾酒排序相关的知识,希望对你有一定的参考价值。

鸡尾酒排序,也叫定向冒泡排序,是冒泡排序的一种改进。此算法与冒泡排序的不同处在于从低到高然后从高到低,而冒泡排序则仅从低到高去比较序列里的每个元素。他可以得到比冒泡排序稍微好一点的效能。

技术分享图片

python代码:

 

 1 def bubble_sort_pro(num_array):
 2     flag = True
 3     for i in range(len(num_array)//2):
 4         if flag:
 5             flag = False
 6             #将最大值排到队尾
 7             for j in range(i, len(num_array)-i-1):
 8                 if num_array[j]>num_array[j+1]:
 9                     num_array[j], num_array[j+1] = num_array[j+1], num_array[j]
10                     flag = True
11             #将最小值排到队首
12             for j in range(len(num_array)-1-i, i, -1):
13                 if num_array[j] < num_array[j-1]:
14                     num_array[j], num_array[j-1] = num_array[j-1], num_array[j]
15                     flag = True
16         else:
17             break
18 
19 
20 def main():
21     a = [6, 5, 3, 1, 8, 7, 2, 4]
22 
23     bubble_sort_pro(a)
24     for i in range(len(a)):
25         print(a[i])
26 
27 
28 if __name__ == __main__:
29     main()

 

以上是关于算法----鸡尾酒排序的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序和鸡尾酒排序的代码分析

算法笔记:鸡尾酒排序算法

js鸡尾酒排序算法

排序算法总结——冒泡排序与鸡尾酒排序

鸡尾酒排序Cocktail Sort (双向冒泡排序)

排序算法总结