python实现冒泡算法

python算法之冒泡排序

  • 技术说明
    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺秀错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。

    bubbleSort.py
    ----------------------
    冒泡排序的实现
    
    @Copyright: Chinasoft International· ETC
    @Author: xiaozhi
    @date: 2019-08-03

lista = [34, 19, 20, 30, 10, 5, 88, 40]
for i in range(len(lista) -1):     # 交换轮次,数的个数减1
    for j in range(len(lista)-1):   # 每一个轮次两个相邻的数都要比一遍
        if lista[j]>lista[j+1]:     # 如果这个数比它后面的数大
           lista[j],lista[j+1] = lista[j+1],lista[j]    # 就交换它们的位置,后移一位
           pass
        pass
    print(lista)

以下是详细步骤:

# lista = [34, 19, 20, 30, 10, 5, 88, 40]
# # 第一轮
# [19,34,20,30,10,5,88,40]
# [19,20,34,30,10,5,88,40]
# [19,20,30,34,10,5,88,40]
# [19,20,30,10,34,5,88,40]
# [19,20,30,10,5,34,88,40]
# [19,20,30,10,5,34,40,88] # 第一次内存循环结束
#
# # 第二轮
# [19,20,30,10,5,34,40,88]
# [19,20,10,30,5,34,40,88]
# [19,10,20,30,5,34,40,88]
# [10,19,20,30,5,34,40,88]    # 第二次内存循环结束
#
# # 第三轮
# [10,19,20,30,5,34,40,88]
# [10,19,20,5,30,34,40,88]
# [10,19,5,20,30,34,40,88]
# [10,5,19,20,30,34,40,88]
# [5,10,19,20,30,34,40,88]    # 第三次内存循环结束

# 注意:其实每轮排序都会循环  i - 1 次,即数的个数减1,本题循环次数应为7次,
但由于有些循环没有循环7次就已经排好序了,所以将其中多余的几次没有写出来。


# 排序完成
# 排序前: lista = [34, 19, 20, 30, 10, 5, 88, 40]
# 排序后: lista = [5, 10, 19, 20, 30, 34, 40, 88] 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值