1.将两个数组拷贝到新数组,然后排序
private static int[] Merge(int[] arr1, int[] arr2)
{
int[] arr = new int[arr1.Length + arr2.Length];
Array.Copy(arr1, 0, arr, 0, arr1.Length);
Array.Copy(arr2, 0, arr, arr1.Length, arr2.Length);
Array.Sort(arr);
return arr;
}
2.双指针操作
public static int[] Merge2(int[] arr1, int[] arr2)
{
int n = arr1.Length + arr2.Length;
int[] mergedArr = new int[n];
int i = 0, j = 0, k = 0;
while (k < n)
{
if (i < arr1.Length && (j == arr2.Length || arr1[i] <= arr2[j]))
{
mergedArr[k++] = arr1[i++];
}
else
{
mergedArr[k++] = arr2[j++];
}
}
return mergedArr;
}