排序算法数据

该实验旨在通过生成随机数数组并应用插入排序,分析算法在最好、最坏和平均情况下的时间复杂性。实验包括两个主要任务:一是生成10个1到100之间的随机数;二是实现插入排序算法,并输出排序后的数组以验证其正确性。
摘要由CSDN通过智能技术生成

实验主题:受输入影响的算法复杂性

  1. 实验目的
    1. 掌握最好情况、最坏情况、平均情况下算法的时间复杂性。
    2. 理解三种情况下时间复杂性的现实意义。
    3. 能够讨论执行次数与输入有关的语句在不同情况下的执行次数。
  2. 实验任务及步骤

1)编程完成待排序数据的生成

任务1:编程实现随机数生成,将随机数保存到数组中。

//

#include <stdio.h>

#include<time.h>

#include<stdlib.h>

int main(){

    int a[10];

    srand((unsigned)time(0));

    for(int i=1;i<=10;i++){

        a[i]=(rand()%100+1);

        printf("%d",a[i]);

    }  

}

2)参照伪代码实现将元素从小到大排序的插入排序算法

任务2:对照插入排序算法的伪代码编程实现插入排序算法,输出数组检查排序编程结果的正确性。

for(int i=2;i<=10;i++){

        int j,s=a[i];

        for(j=i;j>1&&a[j-1]>s;j--){

            a[j]=a[j-1];

        }

        a[j]=s;

    }

    printf("排序后:");

    for(int i=1;i<=10;i++){

        printf("%d ",a[i]);

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值