88. 合并两个有序数组

wuchangjian2021-11-04 19:48:16编程学习
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 gap = m + n;
	while (gap > 1)
	{
		gap--;
		for (int i = gap; i < m + n; i++)
		{
			if (nums1[i - gap] > nums1[i])
			{
				int temp = nums1[i - gap];
				nums1[i - gap] = nums1[i];
				nums1[i] = temp;
			}
		}
	}
}

相关文章

如何防范养老诈骗谨防健康养生陷阱?

2022-08-26 11:20:10 目前,随着人们生活水平的提高,...

电池包IPX9K、IPX9测试目的

电池包IPX9K、IPX9测试目的

IPX9K、IPX9测试前提条件:   经过高低温、振动等测试之后的...

Redis持久化

Redis持久化

我们之前的学习Redis都是基于内存来存储数据的,那么内存存储数据虽然其速...

未来三天湖南高温持续,部分地区森林火险气象等级高

2022-08-20 16:37:49 预计,未来三天(20至22日)...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。