基于Python3.7的排序算法--冒泡排序

冒泡排序(Bubble Sort)

概念:
冒泡排序(Bubble Sort)是一种简单直观的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,一层一层的将较大的元素往后移动,其现象和气泡在上升过程中慢慢变大类似,故称为冒泡排序。

分析:
1、每次遍历只排好最后一个数字,所以外层循环共需要n-1次;
2、每完成一次遍历后,下一次需要比较的数字会少一个,所以第i趟需要比较的次数为n-i-1,内层循环要遍历是n-i-1次

def bubble_sort(blist):
    n = len(blist)

    #外层循环控制总共需要遍历的次数,需要n-1次,range(n)不包含第n次
    for i in range(n): 
        #内层循环控制每一次循环需要比较的次数,对于已经排好的数字不需要再比较了,则需比较n-i-1次
        for j in range(0, n-i-1):   
            #比较两个元素,数字小的放在前面
            if blist[j] > blist[j+1]: 
                blist[j], blist[j+1] = blist[j+1], blist[j]
    return blist
    
arr = [11, 22, 100, 99, 89, 33, 66, 101, 2000, 0, -90]

bubble_sort(arr)

print('排序后:', bubble_sort(arr))

输出结果:

排序后: [-90, 0, 11, 22, 33, 66, 89, 99, 100, 101, 2000]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值