分治法的典型代表就是归并排序。拆分-合并的节奏,逻辑清晰,效率也挺高。是那种上千条数据的场景,排序速度快得,响应也快,CPU 压力小不少。

归并的过程其实不难理解,就是先把数组一直拆,拆到每段都只有一个元素,一对一比较,再一步步合并起来。听起来抽象?别急,这里配了个动画演示,过程一步步走,蛮直观的。

冒泡排序插入排序比起来,归并的时间复杂度是O(nlogn),你会感觉到性能上的差距。尤其是在前端项目里排序表格、大数据列表,用起来顺手。

如果你还想深入点,可以看看这几个文章:比如MATLAB 下归并排序的实现和性能实验,还有算法时间复杂度,都挺有料。

,归并排序不光适合写算法题,放在业务开发里也挺实用的。哦对了,递归写法虽然清爽,但要注意栈溢出的问题,数据大的时候可以试试非递归方式。

如果你在优化表格排序、想提速某个列表,归并排序可以试试看,效果还不错。