CodeCollection2018
8/23/2019 - 1:43 AM

Merge sorted Array--合并两个排序的数组

假设两个递增排序的数组合并成为一个递增排序的数组,并且a数组的长度m,b数组的长度n,同时a数组的容量大于等于m+n,所以不要额外申请数组来实现,直接在a数组中操作。思路是从后往前循环,把最大的数字放在最后面,这样可以直接在a数组上操作。

	public static void mergedTwoSortedArray(int [] a,int m,int [] b,int n){
	  int k = m+n-1;
	  int i = m-1;
	  int j = n-1;
	  while(i >=0 && j >= 0){
	    if(a[i]>=b[j])
	      a[k--]=a[i--];
	    else
	      a[k--] = b[j--];
	  }
	  while(j>=0)
	    a[k--]=b[j--];
	  while(i>=0)
	    a[k--]=a[i--];
	  return;
	}