冒泡排序代码演示+讲解(逐行讲解)

冒泡排序代码演示:

list_ = [7, 3, 8, 4, 9, 5, 6]
for x in range(len(list_) - 1):
    for i in range(len(list_) - 1):  # -1因为下面要加一
        if list_[i] > list_[i + 1]:
            list_[i], list_[i + 1] = list_[i + 1], list_[i]  # [3, 5, 4, 6, 8]
print(list_)

 

讲解:

首先,得先知道什么是冒牌排序:有一个无序的数组,要将他排为有序可以,“让数组里的第1个和第2个比较,谁大谁排后面;再让数组里的第2个和第3个比较,谁大谁排后面,运行一次最大的数排在最后”,重复上述步骤即为冒泡排序

其次,写代码思考时建议从小看到大(接下来第三点有运用)

然后,思路(从小到大):

1.第一个问题解决1和2比大小再解决1和2换位置,再2和3.......(用for循环即可):

for i in range(len(list_) - 1):  # 重复x换y,即遍历列表找最大排最后,需要 - 1 的原因是下面需要i + 1,不 - 1 的话下面会报错
    if list_[i] > list_[i + 1]:  # 比大小
        list_[i], list_[i + 1] = list_[i + 1], list_[i]  # 比完大小大的排后面,这是运行结果:[3, 5, 4, 6, 8]

2.通过1可以得到最大数在最后,重复1即可得到第二大,第三大......(再加for循环即可):
list_ = [7, 3, 8, 4, 9, 5, 6]
for x in range(len(list_) - 1):  # - 1 是因为在知道第二最小的数并排序好,第一最小的数不需要再操作所处的位置即为最小
    for i in range(len(list_) - 1):  
        if list_[i] > list_[i + 1]:
            list_[i], list_[i + 1] = list_[i + 1], list_[i] 
print(list_)

3.组装一下程序就可:
list_ = [7, 3, 8, 4, 9, 5, 6]
for x in range(len(list_) - 1):
    for i in range(len(list_) - 1): 
        if list_[i] > list_[i + 1]:
            list_[i], list_[i + 1] = list_[i + 1], list_[i]  # [3, 5, 4, 6, 8]
print(list_)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值