花溪★流年 2022-05-16 22:23 采纳率: 61.5%
浏览 30
已结题

归并排序出现数字比较奇怪

用了归并排序的代码,但是数组的数组排序后就特别奇怪,不知道怎么回事


#include<stdio.h>
void Merge(int r[], int r1[], int s, int m, int t)
{
    int i=0,j=m+1,k=s;
    while(i<=m && j<=t)
    {
        if(r[i]<=r[j]) 
            r1[k++] =r[i++];
        else r1[k++]=r[j++];
    }
    while(i<=m)
        r1[k++]=r[i++];
    while(j<=t)
        r[k++]=r[j++];
} 
void MergeSort(int r[],int s,int t)
{
    int m,r1[1000];
    if(s==t)
        return;
    else
    {
        m=(s+t)/2;
        MergeSort(r,s,m);
        MergeSort(r,m+1,t);
        Merge(r,r1,s,m,t);
        for(int i=s;i<=t;i++)
        {
            r[i]=r1[i];
        }
    }
}
int main()
{
    int r[] = {4, 7, 6, 5, 2, 1, 8, 2, 9, 1};
    MergeSort(r,0,9);
    for(int i=0;i<10;i++)
    {
        printf("%d ",r[i]);
    }
    return 0;
}

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 5月24日
    • 创建了问题 5月16日

    悬赏问题

    • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
    • ¥15 NX MCD仿真与博途通讯不了啥情况
    • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
    • ¥15 gradio的web端页面格式不对的问题
    • ¥15 求大家看看Nonce如何配置
    • ¥15 Matlab怎么求解含参的二重积分?
    • ¥15 苹果手机突然连不上wifi了?
    • ¥15 cgictest.cgi文件无法访问
    • ¥20 删除和修改功能无法调用
    • ¥15 kafka topic 所有分副本数修改