大爽Python入门练习题 2-10 猜函数
第二章 中期练习题 中等 第10题
题目
简介
尽量手动模拟分析(实在不行也可以用电脑运行)
- 猜一下下面输出的结果
- 猜下
mystery
函数的作用(意义) - 尝试理解每行代码,尝试理解代码整体的思路。
def mystery(arr):
n = len(arr)
for i in range(n-1):
for j in range(0, n-i-1):
if arr[j] > arr[j + 1] :
arr[j], arr[j + 1] = arr[j + 1], arr[j]
lst = [7, 4, 6, 9, 5]
mystery(lst)
print(lst)
分割线
本小段没有实际意义,
仅用于分隔题目和答案。
防止学生无意中直接看到答案,
影响思路。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
答案
- 运行结果如下
[4, 5, 6, 7, 9]
-
mystery
函数的作用
将arr
数组排序(升序) -
代码的思想
这其实就是冒泡排序(Bubble Sort)。
核心思想为:
从前往后,两两比较,大的后移。
比较n轮,排序完成。
特点:
第一轮比较,会将第一大的移到最后面。
第二轮比较,会将第二大的移到后面倒数第二个。
第三轮比较,会将第三大的移到后面倒数第三个。
。。。。。。
过程中的效果像是在冒泡,大的气泡不断上浮。
形象化的相关视频(本人原创):
冒泡排序动画演示【基于python pygame实现】