void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
//首先排除特殊情况:nums2为空的情况(即n==0)
if (n == 0)
{
return;
}
//其次将nums2合并到nums1中去
for (int i = m, j = 0; i < m + n && j < n; i++, j++)
{
nums1[i] = nums2[j];
}
//最后利用希尔排序对nums1进行从小到大的排序
int interval = m + n;
while (interval > 0)
{
interval /= 2;
for (int i = interval; i < m + n; i++)
{
if (nums1[i - interval] > nums1[i])
{
int temp = nums1[i - interval];
nums1[i - interval] = nums1[i];
nums1[i] = temp;
}
}
}
}
88. 合并两个有序数组
最新推荐文章于 2024-08-03 20:10:04 发布