首页
学习
活动
专区
圈层
工具
发布

《野牛程序员讲少儿编程算法》系列迎来新主角:归并排序

《野牛程序员讲少儿编程算法》系列迎来新主角:归并排序

归并排序是啥?

简单说,归并排序像“拼图高手”🧩

先把一堆乱七八糟的拼图分成一小块一小块(拆!)

等每一块都整整齐齐了,再一块一块拼起来(并!)

就像收拾房间:

“咱先把玩具按种类分好,再一个一个放进盒子里!”

🧠 思路(野牛程序员温馨提示):

🧩 拆分阶段(分):

一直把数组对半分,分成一个个小单元,直到每个“单元”里只有一个数。

🧩 合并阶段(并):

从最小的单元开始,两个两个合并,每次合并都保证结果是有序的。

过程听起来像在“开双倍副本”:

🪓【拆】【拆】【拆】 🤝【合】【合】 🧩【合并完成】

举个小例子:

对数组[8, 4, 5, 7, 1, 3, 6, 2]进行归并排序:

分成:[8,4,5,7] 和 [1,3,6,2]

再分:[8,4] [5,7] 和 [1,3] [6,2]

最小单位:[8][4][5][7][1][3][6][2]

现在开始合并:

合并:[4,8], [5,7], [1,3], [2,6]

再合并:[4,5,7,8], [1,2,3,6]

最后合并:[1,2,3,4,5,6,7,8]

🥳 排完了!

C++ 代码来了!(加了点解说,小朋友也能读懂)

🤹‍ 为什么它棒棒哒?

归并排序的时间复杂度稳定是 O(n log n),不怕最坏情况

适合大规模数据,很多高端编程比赛就靠它上分!

逻辑清晰,帮助理解“递归”、“合并”思想,数学思维 up⬆️

🧩 小问题考考你:

数组[9, 5, 1, 8, 3]用归并排序会分几次?每次合并后会变成什么?

在纸上画一画,试着给爸爸妈妈讲一讲,看懂没!

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

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

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

相关快讯

领券