xz2945624632 2022-06-30 17:12 采纳率: 50%
浏览 69
已结题

基于c语言的插入排序算法的优化

基于c语言的插入排序优化问题,统计该排序算法所进行的数组元素间比较次数,复制次数,并利用参数(不使用全局变量)“返回”统计结果。同时,用不同规模(如:从1024开始逐次倍增至65536),多种构型测试数据进行算法测试,然后分析算法测试结果,包括算法的时间复杂度,空间复杂度,排序算法的稳定性,及对数据构型的“适用性”

  • 写回答

1条回答 默认 最新

  • 天际的海浪 2022-06-30 17:23
    关注
    获得5.00元问题酬金

    img

    你题目的解答代码如下:

    #include<stdio.h>
    
    void insertsort(int a[], int n, int *c1, int *c2)
    {
        int i, j, temp;
        *c1=0;
        *c2=0;
        for(i=1;i<n;i++)
        {
            (*c1)++;
            if(a[i]<a[i-1])//如果后面出现比前面小的数字
            {
                temp=a[i];
                for(j=i-1;temp<a[j]&&j>=0;j--)//把前面的数字移动,挪出一个合适的位置给a[i]
                {
                    (*c2)++;
                    a[j+1]=a[j];
                }
                a[j+1]=temp;
            }
        }
    }
    
    int main(void)
    {
        int i,c1,c2;
        int a[10]={1,2,0,3,4,5,6,7,9,8};
        printf("排序前:");
        for(i=0;i<10;i++)
        {
            printf("%d ",a[i]);
        }
        printf("\n\n\n");
        insertsort(a, 10, &c1,&c2);
        printf("排序后:");
        for(i=0;i<10;i++)
        {
            printf("%d ",a[i]);
        }
        printf("\n\n\n");
        printf("总计数据比较%d次\n\n", c1);
        printf("总计数据交换%d次\n\n", c2);
    
        return 0;
    }
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月8日
  • 创建了问题 6月30日

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型