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;
			}
		}
	}
}

相关文章

2018年试题

目录 一、程序阅读与理解(45分)  二、简答题...

在Ubuntu20.04安装MISP

安装和配置MISP 1、sudo apt-get update -y &&am...

Golang spf13/viper配置解析

Viper解析&加载配置 1    Viper是什么 Viper是一个方...

v-html和v-text

v-html和v-text

v-text 文本渲染指令(只能渲染文本不能渲染标签)...

发表评论    

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