一文看懂冒泡排序

#排序

numbers=[6,2,1,5,3,9]
for i in range(len(numbers)):
    for j in range(i+1,len(numbers)):
        if numbers[i]>numbers[j]:
            numbers[i],numbers[j]=numbers[j],numbers[i]  #快速交换
            print(numbers)
    print('----------->',i)

本来numbers=[6,2,1,5,3,9]

外层循环i=0时:内层循环 for j in range(1,6)

[2, 6, 1, 5, 3, 9]     比较原来6和2的大小,因为6>2,所以交换位置
[1, 6, 2, 5, 3, 9]     比较上一次结果2和1的大小,因为2>1,所以交换位置
[1, 6, 2, 5, 3, 9]     比较上一次结果1和5的大小,因为1<5,所以位置不变
[1, 6, 2, 5, 3, 9]     比较上一次结果1和3的大小,因为1<3,所以位置不变
[1, 6, 2, 5, 3, 9]     比较上一次结果1和9的大小,因为1<9,所以位置不变
-----------> 0      通过第一轮外层循环确保了第一个数字1是最小的

外层循环i=1时:
[1, 2, 6, 5, 3, 9]     比较上一次结果6和2的大小,因为6>2,所以交换位置
[1, 2, 6, 5, 3, 9] 
[1, 2, 6, 5, 3, 9]         
[1, 2, 6, 5, 3, 9]
-----------> 1    通过第二轮外层循环确保了第2个数字2是第2小的

外层循环i=2时:
[1, 2, 5, 6, 3, 9]      比较上一次结果6和5的大小,因为6>5,所以交换位置
[1, 2, 3, 6, 5, 9]      比较上一次结果5和3的大小,因为5>3,所以交换位置
[1, 2, 3, 6, 5, 9]
-----------> 2       通过第三轮外层循环确保了第3个数字是第3小的

外层循环i=3时:
[1, 2, 3, 5, 6, 9]       比较上一次结果6和5的大小,因为6>5,所以交换位置
[1, 2, 3, 5, 6, 9]
-----------> 3         通过第四轮外层循环确保了第4个数字5是第4小的
[1, 2, 3, 5, 6, 9]
-----------> 4
-----------> 5

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值