冒泡排序代码演示:
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_)
339

被折叠的 条评论
为什么被折叠?



