啊桂分呐 2021-11-19 19:56 采纳率: 100%
浏览 12
已结题

关于的合并排序的一下问题

img

  • 写回答

1条回答 默认 最新

  • 从善若水 优质创作者: 信息安全技术领域 2021-11-19 20:05
    关注
    
    
    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    #define M (10)
    #define N (5)
        
        int a[M]={1,2,5,9,9,12,54,56,89,100};
        int b[N]={1,2,3,4,102};
        int c[M+N];
        
        for(int i=0;i<M;++i)
            printf("%d ",a[i]);
        printf("\n");
        
        for(int i=0;i<N;++i)
            printf("%d ",b[i]);
        printf("\n");
        
        int i=0,j=0,k=0;
        while(i<M && j<N)
        {
            if(a[i]<=b[j])
            {
                c[k++]=a[i++];
            }else{
                c[k++]=b[j++];
            }
        }
        while(i<M)
            c[k++]=a[i++];
        
        while(j<N)
            c[k++]=b[j++];
        
        for(int i=0;i<M+N;++i)
            printf("%d ",c[i]);
        printf("\n");
        
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 已采纳回答 11月19日
  • 创建了问题 11月19日