1 条题解

  • 0
    @ 2025-10-30 10:58:38

    思路分析

    1. 任务拆解:

    • 读取整数个数n
    • 读取n个整数
    • 使用插入排序进行升序排序
    • 输出排序后的数组

    2. 关键点分析:

    • 插入排序核心:将每个元素插入到前面已排序序列的正确位置
    • 从第2个元素开始(i=2),认为第1个元素已排序
    • 将当前元素作为key,与前面已排序元素从右往左比较
    • 比key大的元素后移,为key腾出插入位置

    3. 步骤规划: 第一步:读取整数个数n 第二步:循环读取n个整数 第三步:从第2个元素开始进行插入排序 第四步:保存当前元素为key 第五步:将比key大的元素后移 第六步:在正确位置插入key 第七步:输出排序后的数组

    4. 代码对应:

    • cin>>n:读取整数个数
    • 第一个for循环:输入数组元素
    • 第二个for循环:遍历每个待插入元素(i从2到n)
    • key=a[i]:保存当前要插入的元素
    • j=i-1:从当前元素前一个位置开始比较
    • while(j>=1&&a[j]>key):寻找插入位置,比key大的元素后移
    • a[j+1]=a[j]:元素后移操作
    • j--:继续向左比较
    • a[j+1]=key:在正确位置插入key
    • 第三个for循环:输出排序后的数组
    • 1

    信息

    ID
    4104
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    (无)
    递交数
    29
    已通过
    15
    上传者