https://leetcode.cn/problems/merge-sorted-array/description/

/**
巧妙运用排序即可,主要分正向排序,还有反向排序
两者的区别就在于,正向排序的话,需要一个临时变量,避免元素直接覆盖‘
反向排序的话,就需要temp,a,b三者的交换
*/
package LeetCode中等题02;
public class __88合并两个有序数组 {
/**
*
* @param nums1
* @param m
* @param nums2
* @param n
*/
public void merge(int[] nums1, int m, int[] nums2, int n) {
/**
巧妙运用排序即可,主要分正向排序,还有反向排序
两者的区别就在于,正向排序的话,需要一个临时变量,避免元素直接覆盖‘
反向排序的话,就需要temp,a,b三者的交换
*/
int p1 = 0,p2 = 0;
int sorted [] = new int[m+n];
int cur ;
while (p1 < m || p2 < n){
if (p1 == m){
cur = nums2[p2++];
} else if (p2 == n) {
cur = nums1[p1++];
} else if (nums1[p1] < nums2[p2]) {
cur = nums1[p1++];
}else {
cur = nums2[p2++];
}
sorted[p1 + p2 - 1] = cur;
}
for (int i=0;i != m + n;++i){
nums1[i] = sorted[i];
}
}
}