最近的算法课,上得我是一脸懵逼,大一学过归并排序,如今也忘得差很少了,如今来回顾一下。java
1.关于归并
这是归并排序中很重要的一个步骤,必定要耐心的看明白。若是给定两个已经排好序的数组,A=[1,3,5],B=[2,4], 如今要将两个数组合并成一个有序数组,你会怎么作?
1.开辟一个长度为10的数组C算法
public class MergeSort { @Test public void merge() { int[] A = {1, 2, 3}; int[] B = {2, 4, 5}; int i1 = 0, i2 = 0, i3 = 0; int[] C = new int[6]; while (i1 < A.length && i2 < B.length) { if (A[i1] <= B[i2]) { C[i3++] = A[i1++]; } else { C[i3++] = B[i2++]; } } while(i1<A.length){ C[i3++] = A[i1++]; } while(i2<B.length){ C[i3++]=B[i2++]; } for(int i=0; i<C.length;i++){ System.out.print(C[i]+" "); } }
运行结果:
数组
未完待续...(能够参考https://www.jianshu.com/p/33cffa1ce613)code