1 条题解
-
0
思路分析
1. 任务拆解:
- 读取整数个数n
- 读取n个整数
- 使用插入排序进行升序排序
- 每处理一个元素就输出当前数组状态
2. 关键点分析:
- 插入排序从第2个元素开始(i=1),认为第一个元素已排序
- 如果当前元素比前一个元素小,才需要进行插入操作
- 使用temp保存当前元素,为元素后移腾出空间
- 从右往左比较,找到合适的插入位置
- 每处理完一个元素就输出当前数组状态
3. 步骤规划: 第一步:读取整数个数n 第二步:循环读取n个整数 第三步:从第2个元素开始插入排序 第四步:如果当前元素需要插入,保存该元素 第五步:将比当前元素大的元素后移 第六步:在正确位置插入当前元素 第七步:每趟处理后输出当前数组
4. 代码对应:
cin>>n:读取整数个数for循环:输入数组元素(下标从0开始)if(a[i]<a[i-1]):判断是否需要插入temp=a[i]:保存当前要插入的元素- 内层
for循环:寻找插入位置,比temp大的元素后移 a[j+1]=a[j]:元素后移操作a[j+1]=temp:在正确位置插入元素- 输出循环:每趟排序后输出当前数组状态
信息
- ID
- 4105
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 13
- 已通过
- 12
- 上传者