载一段月光219 2022-06-13 18:59 采纳率: 100%
浏览 40
已结题

生成一组无序关键字,用C语言输出快速排序过程中消耗的额外空间

生成一组无序关键字,用C语言输出快速排序过程中消耗的额外空间

  • 写回答

1条回答 默认 最新

  • fuill 2022-06-13 19:36
    关注

    解答如下

    img

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #define   N 200000
    #define MAX 1000 
    int t[N];
    int count=0; 
    int Ysort(int arr[],int n)//检测排序完成 
    {
        int i=0;
        while(i<n-1)
        {
            if(arr[i]>arr[i+1])
                return 78;
            i++;
        }
        return 89;
    }
    void prin(int t[],int begin,int end)
    {
        while(begin<=end)
            printf(" %d ",t[begin++]);
        printf("\n");
    }
    void QuickSort(int t[],int Begin,int End)//快速排序 
    {
        if(Begin>=End) return;
            count+=End-Begin;
        int Left=Begin,Right=End;
        int tem=t[Begin];
        while(Begin<End)
        {
            while(Begin<End&&t[End]>=tem)
            {
                End--;
            }
            t[Begin]=t[End];
            while(Begin<End&&t[Begin]<=tem)
            {
                Begin++;
            }
            t[End]=t[Begin];
        }
        t[Begin]=tem;
    
        QuickSort(t,Left,Begin-1);
        QuickSort(t,Begin+1,Right);
    }
    int main()
    {
        int i;
        int n=N;
        int max=MAX;
        printf("Size:%d\n",n);
        printf("Max :%d\n",max);
        for( i = 0; i < N; i++)
        {
            t[i] = rand()%MAX;
        }
        printf("%c  \n",Ysort(t,n));
        int begintime,endtime;
        begintime=clock();
        QuickSort(t,0,n-1);
        endtime = clock();
        printf("\n\nSort Running Time:%dms\n", endtime-begintime);
        printf("This is QuickSort.\n"); 
        
        printf("%c  \n",Ysort(t,n));
        
        printf("消耗内存:%.3lf MB\n",(double)sizeof(int)*count/1048576);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月21日
  • 已采纳回答 6月13日
  • 创建了问题 6月13日

悬赏问题

  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 three.js添加后处理以后模型锯齿化严重