小白眼里的归并排序
1.归并排序的基本思想
1.归并排序依然采取的是分治算法,首先把数组拆分成有限个有序小数组(分)
2.相邻两个小数组之间进行比较合并成有序大数组(治)
2.图解归并排序

3.归并排序的一个小例子(如何将两个有序数组合并成一个数组)
public static int [] merge(){ //首先准备两个需要合并的有序数组 int [] arr1 = {1,2,9}; int [] arr2 = {4,6}; //开辟一个临时数组,长度等于相比较两数组长度之和 int [] temp = new int[arr1.length+arr2.length]; //三个指针,用于指向初始三个数组起始位置 int left,right,t; left=right=t=0; //进行比较后,组成新的有序数组,并赋值到temp中 while(left<arr1.length && right<arr2.length){ if(arr1[left]<arr2[right]){ temp[t++] = arr1[left++]; }else{ temp[t++] = arr2[right++]; } } //将arr1剩余元素填充进temp中 while(left<arr1.length){ temp[t++] = arr1[left++]; } //将arr2剩余元素填充进temp中 while(right<arr2.length){ temp[t++] = arr1[right++]; } return temp; }
浙公网安备 33010602011771号