之前我们为了简化比较策略,采用哨兵,在带归并的两段数组上添加一个∞的哨兵。这次,我们不使用哨兵,而是多添加两个判断语句来实现归并排序。0使用java实现归并排序
方法/步骤
1
如下是归并排序算法的执行流程:逐步递归直到每一组只有一个元素后,依次回溯,合并每一对数组。
2
打开MyEclipse,创建一个新的工程:依次点击File->New->Java Project。在弹出窗口输入项目的名称,并点击Finish。
3
然后右击项目路径下的src,然后选择New->Class,输入包名与类名,创建排序工具类。
4
首先将原数组的两部分复制到新的两个数组。使用System.arraycopy方法,它 是一个native方法,速度快于Arrays.copyOf与for循环。
5
接下来对两个数组的数进行比较:设置两个索引,按升序依次给原数组赋值。首先,当其中一个数组达到末尾时,直接将另一个数组的剩余元素全部复制到原数组中。
6
对于其他的平凡情况,只需要比较两数的大小就可以决定将哪个数赋值。
7
接下来使用递归调用以上的函数,直到每一数组只剩一个元素,递归开始回溯。
8
接下来对数组{5, 2, 4, 7, 1, 3, 2, 6}进行测试,测试代码与结果如下,这与我们的预期结果相同。
上一篇:亿到万怎么换算
下一篇:证券投资的种类与特点