首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

“野牛程序员·少儿编程算法启蒙课”之——快速排序,像忍者一样分身排序!

“野牛程序员·少儿编程算法启蒙课”之——快速排序,像忍者一样分身排序!

什么是快速排序?

快速排序,全名:快得很的排序(开玩笑)

它是一种“分而治之”的策略,像切蛋糕一样,把数据一切再切,左边的比中间这个小,右边的比中间这个大,然后——递归地各自再去切!

就像一个忍者,把一堆人分成左边(低年级),右边(高年级),然后左边自己再分,右边也自己再分……最后自动就排好了队!

举个例子来理解:

假设有这样一组数字:

[7, 3, 9, 4, 6, 2]

Step 1:选一个“基准值”(pivot)

比如选第一个:7

Step 2:把比 7 小的放左边,比 7 大的放右边:

[3, 4, 6, 2](左边)7[9](右边)

Step 3:左边[3, 4, 6, 2]再来一次快速排序!选 3:

[2]3[4, 6]

继续拆下去……

最后就拼起来啦:

[2, 3, 4, 6] + 7 + [9] 排好了!

🧑‍ C++ 代码来了:

快速排序的亮点:

平均时间复杂度是 O(n log n),比冒泡、选择、插入快多了

思维训练非常棒,能让孩子理解“递归”、“分治”这些计算机里超重要的概念

排序速度快到像忍者一样,一刀两断!

🧠 小贴士(写给小朋友):

快速排序不是看谁速度快,而是分组分得妙!

每次都找个“中间人”(pivot)当小组长

小组长左边的都比它小,右边的都比它大

然后大家继续自己选小组长,分分分!

🧡 小小挑战题:

动手把[10, 7, 8, 9, 1, 5]用快速排序排一排~

写代码前,先在纸上模拟一遍,看看分成了哪几组,最后拼成啥样?

野牛程序员教少儿编程与信息学奥赛

宜宾市野牛网络科技有限公司专业微信小程序开发、网站建设、软件开发等

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OxEd7056hbmo63zkPOsh-WCw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券