题解 | #有序序列合并#

有序序列合并

https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897

#include <stdio.h>

int main()
{
    int m,n;
    scanf("%d%d",&m,&n);
    int arr[2000]={0};    //因为最后要对两行数一起排列所以两行数并成一个数组
    for(int i=0;i<m+n;i++)
    {
        scanf("%d",&arr[i]);    //输入两行数
    }
    for(int i=0;i<m+n;i++)     //从arr[0]开始依次与后面的数进行比较
    {
        for(int j=i+1;j<m+n;j++)   //j=i+1从i的下一个数到最后一个数
        {   
            int tmp=0;
            if(arr[j]>arr[i])   //依次与arr[i]比较,将较大的数放在前面也就是arr[i]的位置
            {
                tmp=arr[i];
                arr[i]=arr[j];
                arr[j]=tmp;
            }
        }
    }                                //循环结束构成由大到小排列的数组
    for(int i=m+n-1;i>=0;i--)        //由小到大排序输出
    {
        printf("%d ",arr[i]);
    }
    return 0;
}

全部评论

相关推荐

评论
2
收藏
分享
牛客网
牛客企业服务