1 条题解
-
0
思路分析
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
- 上传者