最激动人心的环节来啦——动手写代码!小朋友们,打开你们的Python编辑器,跟着我一步步来,注意哦,代码里的标点和空格可不能写错,不然魔法就失效啦😜!第一步:准备队伍(模块1)
我们先用一个列表,把小动物的编号存起来,就像把它们召集到一起:# 准备小动物的编号(无序队伍)
animals = [7, 11, 3, 2, 5]print("排序前的队伍(乱哄哄):", animals)
这是魔法的核心部分,我们用函数和递归来实现“找基准、分两边”的逻辑,每一行代码都加了注释,小朋友们一看就懂,放心跟着写!# 定义快速排序函数(魔法核心)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)
调用我们写好的快速排序魔法,让它帮小动物们排队,再打印出排好队的队伍,看看是不是赢定比赛啦:# 施展快速排序魔法,得到有序队伍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]
哇!小动物们按照编号从小到大,整整齐齐地排好队了,用时超短,顺利拿下排序大赛的冠军!小兔老师亲自为我们颁发“编程小勋章”,还笑着说:“太厉害啦!快速排序魔法果然名不虚传~”