python代码题之实现冒泡排序

冒泡排序:

冒泡排序(英语:Bubble Sort)是一种简单的排序算法。
它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

实现思路:
双重for循环,内层变量为i, 外层为j,
在内层循环中不断的比较相邻的两个值(i, i+1)的大小,
如果i+1的值大于i的值,交换两者位置,每循环一次,外层的j增加1,
等到j等于n-1的时候,结束循环

list = [1, 4, 3, 80, 12, 33, 8]
def bubble_sort(list):
    n = len(list)
    for j in range(0, n - 1):    #外层循环
        for i in range(0, n - 1 - j):  #内层循环
            if list[i] > list[i + 1]: #内层不断比较相邻两个值的大小
                list[i], list[i + 1] = list[i + 1], list[i]  #如果i+1的值大于i的值,交换两者位置
bubble_sort(list)
print(list)  

在这里插入图片描述

方法一:

def maopao_sort(list):
    '''冒泡排序'''
    n = len(list)
    for j in range(n-1):
        for i in range(0, n-1-j):
            if list[i] > list[i+1]:
                list[i],list[i+1] = list[i+1],list[i]
if __name__ == '__main__':
    list1 = [1, 3, 5, -1, 7, 80, 0]
    print(list1)
    maopao_sort(list1)
    print(list1)

方法二:优化以后的代码:

list = [1, 4, 3, 80, 12, 33, 8]
n=len(list)  #计算列表的长度,循环的次数长度减1
for i in range(n): #外循环6次
    count_n=0  #计算内层循环交换次数
    for  j  in  range(n-i-1):
        if  list[j]>list[i]:
            list[j],list[j+1]=list[j+1],list[j]
            count_n +=1
        if  count_n==0:   #如果内部交换等于0,就说明排列完成
            break
print(list)

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多测师软件测试培训师肖sir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值