鸡尾酒排序,也叫定向冒泡排序,是冒泡排序的一种改进。此算法与冒泡排序的不同处在于从低到高然后从高到低,而冒泡排序则仅从低到高去比较序列里的每个元素。他可以得到比冒泡排序稍微好一点的效能。
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 = True11 #将最小值排到队首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 = True16 else:17 break18 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()