美文网首页笑笑酱大数据
鸡尾酒排序——优化的冒泡排序

鸡尾酒排序——优化的冒泡排序

作者: Aedda | 来源:发表于2019-04-08 19:09 被阅读0次
# 鸡尾酒排序是冒泡排序的升级版,属于双向冒泡排序
# 基本原理:(以升序为例)
# 1.找出最大值放到最后;找到最小值放到最前(同一步中进行,但有先后)
# 2.找出第二大值放到倒二;找到第二小值放到第二
# 3.重复实现升序
# 实现过程:外层循环,控制总的循环次数n/2取整(偶数时正好排列完毕,奇数时中间剩余的也正好排列),
# 第一内层循环,大值后移,第二内层循环,小值前移;

import random
Range = 10
Length = 5

list = random.sample(range(Range),Length)    #在指定序列中随机获取指定长度片段
print('before sort:',list)

for i in range(int(Length/2)):                   #控制循环次数

   for j in range(i,Length-i-1):           #大值后移
       if list[j] > list[j + 1]:
           list[j + 1], list[j] = list[j], list[j + 1]

   for k in range(Length-i-2,i,-1):        #小值前移,逆序遍历
       if list[k] < list[k-1]:
           list[k-1],list[k] = list[k],list[k-1]
print('after sort:',list)
# 如果在一次检索中,未发生交换,说明已经排序完毕,可以停止剩余循环
# 加入停止标志
import random
Range = 10
Length = 5
sign = 1
list = random.sample(range(Range),Length)    #在指定序列中随机获取指定长度片段
print('before sort:',list)
for i in range(int(Length/2)):                   #控制循环次数
   if sign:
       sign = 0
       for j in range(i,Length-i-1):           #大值后移
           if list[j] > list[j + 1]:
               list[j + 1], list[j] = list[j], list[j + 1]

       for k in range(Length-i-2,i,-1):        #小值前移,逆序遍历
           if list[k] < list[k-1]:
               list[k-1],list[k] = list[k],list[k-1]
               sign = 1
   else:
       break

print('after sort:',list)

相关文章

  • 排序算法(九)鸡尾酒排序

    排序算法(九)鸡尾酒排序   鸡尾酒排序(Cock-Tail-Sort)是基于冒泡排序做一点点优化而来的。冒泡排序...

  • 算法之美——鸡尾酒排序

    1.概念 鸡尾酒排序又称双向冒泡排序、鸡尾酒搅拌排序、搅拌排序、涟漪排序、来回排序或快乐小时排序, 是冒泡排序的一...

  • Java基础01 冒泡排序

    冒泡排序 Java中有很多种排序:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、...

  • 鸡尾酒排序Cocktail Sort

    鸡尾酒排序,也就是定向冒泡排序,鸡尾酒搅拌排序,搅拌排序(也可以视作选择排序的一种变形),涟漪排序,来回排序or ...

  • 动画 | 什么是鸡尾酒排序?

    鸡尾酒排序其实就是冒泡排序的变形,它的时间复杂度和冒泡排序一样,都是O(n^2),比快速排序要慢不少。 鸡尾酒排序...

  • 冒泡排序的C语言实现

    冒泡排序 优化后的冒泡排序

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 排序算法

    1. 冒泡排序1.1. 基础版本1.2. 优化一:设置标志位1.3. 优化二1.4. 参考文章 2. 鸡尾酒排序(...

  • 鸡尾酒排序

    鸡尾酒排序 @(F1 - 算法学习)[排序|noteton] WIKI上的定义 鸡尾酒排序,也就是定向冒泡排序、鸡...

  • 排序-鸡尾酒排序

    鸡尾酒排序,也叫定向冒泡排序,是冒泡排序的一种改进。此算法与冒泡排序的不同处在于从低到高然后从高到低,而冒泡排序则...

网友评论

    本文标题:鸡尾酒排序——优化的冒泡排序

    本文链接:https://www.haomeiwen.com/subject/mngpiqtx.html