大爽Python入门练习题 210 猜函数

大爽Python入门练习题总目录

第二章 中期练习题 中等 第10题

题目

简介

尽量手动模拟分析(实在不行也可以用电脑运行)

  1. 猜一下下面输出的结果
  2. 猜下mystery函数的作用(意义)
  3. 尝试理解每行代码,尝试理解代码整体的思路。
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)

分割线

本小段没有实际意义,
仅用于分隔题目和答案。
防止学生无意中直接看到答案,
影响思路。



















答案

  1. 运行结果如下
[4, 5, 6, 7, 9]
  1. mystery函数的作用
    arr数组排序(升序)

  2. 代码的思想
    这其实就是冒泡排序(Bubble Sort)。

核心思想为:
从前往后,两两比较,大的后移。
比较n轮,排序完成。

特点:
第一轮比较,会将第一大的移到最后面。
第二轮比较,会将第二大的移到后面倒数第二个。
第三轮比较,会将第三大的移到后面倒数第三个。
。。。。。。
过程中的效果像是在冒泡,大的气泡不断上浮。

形象化的相关视频(本人原创):
冒泡排序动画演示【基于python pygame实现】

原文地址:https://www.cnblogs.com/BigShuang/p/15685714.html