130-合并两个有序数组(升序)(最优方法)

合并两个有序数组(升序)(最优方法)
sums1
sums2为两个数组的名
合并到sums1数组中(sums1容量足够大)

//合并有序数组 
#include<stdio.h>
int main()
{
    
    
	int len=m+n-1;//sums1数组的大小 
	int i=m-1;//sums1数组合并前的最后一个下标 
	int j=n-1;//sums2数组的最后一个下标 
	while(i>=0&&j>=0)//遍历 
	{
    
    
		if(nums1[i]>nums2[j])//从最后一个数进行对比放在最后的位置 
		{
    
    
			nums1[len--]=nums1[i--];
		}
		else
		{
    
    
			nums1[len--]=nums2[j--];
		}
	}
	if(j>=0)//若剩下sums2还有数字,全部放进sums1中 
	{
    
    
		for(;j>=0;j--)
		{
    
     
			nums1[j]=nums2[j];
		} 
	}
	for(int k=0;k<m+n;k++)//打印合并后的sums1数组 
	{
    
    
		printf("%d",nums1[k]);
	}
	return 0;
	
}

猜你喜欢

转载自blog.csdn.net/LINZEYU666/article/details/112295686