八大排序之一的归并排序
所谓归并排序,思路主要是两个,分治
分的过程很简单,主要是用递归的思路解决就可以,且不对数据做任何排序上的处理。
治也就是合的过程中,需要不断的将两个有序数组合并成一个有序的数组,下面这张图片仅演示了最后一次数组合并的过程,整个归并排序过程中进行了7次这种合并排序的过程。
在合并过程中,先创建一个temp的空数组,将左右两边序列比较之后的最小值一次放入temp数组中,一直到某一边序列的数据完全被处理完之后,有剩余数据的那边序列可以直接拷贝到temp数组的末尾。最后将有序的temp数组再拷贝给原数组,排序完成。
package yu.practice03.Sort;
import java.util.Arrays;
public class MergeSortDemo {
public static void main(String[] args) {
int[] arr ={
3,8,9,2,1,4,5,7,10,6};
int[] temp = new int