当前位置:首页>python>Python少儿编程-森林排序大赛

Python少儿编程-森林排序大赛

  • 2026-10-11 08:00:05
Python少儿编程-森林排序大赛

想象比知识更重要

编程能让想象变成现实

~Python少儿编程课堂来啦~

哈喽,各位编程小达人、森林小粉丝们👋!今天森林里热闹翻啦——一年一度的“小动物排序大赛”正式开赛,谁能最快把混乱的编号排整齐,就能获得小兔老师准备的“编程小勋章”!

可比赛一开始,小选手们就犯了难:参赛的小动物编号是 7,5,11,2,3,它们乱哄哄地挤在一起,怎么也排不好队。小松鼠急得抓耳朵,小仓鼠跺着小脚:“怎么办怎么办?普通排队方法太慢啦,根本赢不了比赛!”别慌别慌!今天我们就解锁Python编程里的“闪电排序魔法”——快速排序,它就像拥有瞬移能力,能快速给小动物们找到正确位置,轻松拿下比赛,快跟着我一起解锁秘籍吧🚀!

排序大赛的紧急挑战

森林排序大赛的规则超简单:给5只小动物的编号(7、5、11、2、3),按从小到大的顺序排好队,用时最短的选手获胜。而且有个小要求——排序时要“分而治之”,不能像以前那样逐个慢慢排。

小兔老师当裁判,她笑着说:“快速排序的魔法,核心就是‘找基准、分两边、再递归’,就像我们分糖果一样,先找一个‘基准糖果’,爱吃甜的站左边,不爱吃的站右边,再慢慢分,速度超快哦!”
编程小达人(就是你!)主动站出来:“我来帮大家!用Python快速排序魔法,一秒搞定混乱队伍,保证拿到小勋章🏅!”

拆解魔法步骤轻松闯关

小朋友们记住啦,编程解题就像拆零食包装,不用一下子拆开,我们把“用快速排序帮小动物排队”这个大挑战,拆成一个个小任务,一步步来,轻松解锁魔法!

01

把大难题变小游戏    

我们的目标是:把无序编号 7,5,11,2,3,变成从小到大的有序队伍。根据快速排序的魔法规则,拆解成3步,一看就懂:

  1. 第一步:找基准——选择未排序队伍最左边的元素当“基准小队长”(这次我们选7当基准哦);
  2. 第二步:分两边——让所有比基准小的小动物站在基准左边,比基准大的站在右边,基准就找到自己的正确位置啦;

  3. 第三步:再递归——以基准为中心,左边和右边的小队伍,再重复第一步和第二步,直到所有小队伍都排整齐,比赛就赢啦!

02

给每个步骤“起名字” 

就像给小动物分配比赛任务一样,我们给快速排序魔法分3个“模块”,每个模块只做一件事,代码更清晰,不容易出错哦:
  1. 模块1:“准备队伍”—— 把小动物的编号放进一个列表里(相当于把小动物们召集到一起,方便我们管理);
  2. 模块2:快速排序核心——实现“找基准、分两边”的魔法逻辑,这是最快排序的关键,也是拿到勋章的核心;
  3. 模块3:展示成果——把排好队的队伍打印出来,看看我们的魔法有没有成功,能不能帮小动物们赢比赛。

动手写出闪电排序魔法

最激动人心的环节来啦——动手写代码!小朋友们,打开你们的Python编辑器,跟着我一步步来,注意哦,代码里的标点和空格可不能写错,不然魔法就失效啦😜!

第一步:准备队伍(模块1)

我们先用一个列表,把小动物的编号存起来,就像把它们召集到一起:

# 准备小动物的编号(无序队伍)

animals = [7, 11, 3, 2, 5]print("排序前的队伍(乱哄哄):", animals)

第二步:编写快速排序核心魔法(模块2)

这是魔法的核心部分,我们用函数和递归来实现“找基准、分两边”的逻辑,每一行代码都加了注释,小朋友们一看就懂,放心跟着写!
# 定义快速排序函数(魔法核心)def quick_sort(arr):    # 魔法终止条件:如果队伍里只有0个或1个小动物,就不用排序啦    if len(arr)<=1:        return arr    # 第一步:找基准——选队伍最左边的元素当基准小队长    pivot = arr[0]    # 第二步:分两边——比基准小的放左边,大的放右边,等于的放中间    left = [x for x in arr[1:] if x < pivot]  # 左边:比7小的小动物    right = [x for x in arr[1:] if x > pivot] # 右边:比7大的小动物    # 第三步:递归魔法——左边和右边的队伍,再重复排序,最后合并    return quick_sort(left) + [pivot] + quick_sort(right)

第三步:施展魔法+展示成果(模块3)

调用我们写好的快速排序魔法,让它帮小动物们排队,再打印出排好队的队伍,看看是不是赢定比赛啦:
# 施展快速排序魔法,得到有序队伍sorted_animals = quick_sort(animals)# 打印排好队的队伍,展示成果print("排序后的队伍(整整齐齐):", sorted_animals)
完整代码
# 少儿Python编程 - 快速排序:森林排序大赛专属魔法# 模块1:准备无序队伍(参赛小动物编号)animals = [7, 5, 11, 2, 3]print("排序前的队伍(乱哄哄):", animals)# 模块2:快速排序核心魔法(找基准、分两边、再递归)def quick_sort(arr):    # 终止条件:队伍长度≤1,无需排序    if len(arr)<=1:        return arr    # 选最左边的元素当基准小队长    pivot = arr[0]    # 分两边:比基准小的左,大的右    left = [x for x in arr[1:] if x < pivot]    right = [x for x in arr[1:] if x > pivot]    # 递归排序,合并结果    return quick_sort(left) + [pivot] + quick_sort(right)# 模块3:施展魔法,展示排序成果sorted_animals = quick_sort(animals)print("排序后的队伍(整整齐齐):", sorted_animals)

运行结果揭秘

小朋友们,运行代码后,你们会看到这样的结果:
排序前的队伍(乱哄哄): [7, 5, 11, 2, 3]排序后的队伍(整整齐齐): [2, 3, 5, 7, 11]
哇!小动物们按照编号从小到大,整整齐齐地排好队了,用时超短,顺利拿下排序大赛的冠军!小兔老师亲自为我们颁发“编程小勋章”,还笑着说:“太厉害啦!快速排序魔法果然名不虚传~”

快速排序小技巧

小朋友们,今天我们不仅帮小动物们赢得了排序大赛,还学会了Python里超厉害的快速排序算法,是不是超有成就感?
记住哦,快速排序的核心魔法就是 “找基准、分两边、再递归”,就像分糖果一样,先找一个基准,再慢慢拆分,速度比普通排序快太多,以后遇到混乱的队伍,就用这个魔法准没错!
课后小挑战:试着把小动物的编号改成 9, 4, 6, 1, 8,用今天学的快速排序魔法,帮它们也排好队吧!记得把运行结果发到评论区,和大家一起分享你的魔法成果~
关注我,下次我们还要解锁更多Python编程魔法,解决更多森林里的小难题,做最厉害的编程小达人💪!

(文末彩蛋:关注我,少儿编程不迷路,每天进步一点点!)

最新文章

随机文章