归并排序

来源:互联网 发布:码表速度与轮径数据 编辑:程序博客网 时间:2024/05/08 18:12

         归并是将两个或两个以上的有序表组合成一个新的有序表。一个序列有n个记录,则可以看成是n个有序的子序列,两两归并。在实际应用中,归并排序还有一些问题,当我们用这个算法对一个很大的数据集进行排序时,我们需要相当大的空间来合并存储两个子数组。

         通常来讲,归并排序会采用递归的算法来实现,但是在javascript中不太好,因为这个算法的递归深度太深了。所以我们介绍一种非递归的方法,称为自底向上的归并排序。

         该算法首先将数据集分解为一组只有一个元素的数组,然后通过创建一组左右子数组将它们慢慢合并起来,每次合并都保存一部分排好序的数据,直到最后剩下的这个数组所有数据都已完美排序,如下图示例:




2 0