代码高亮网站,wordpress公众号推送,淘宝客api采集发布到wordpress,局网站建设自查任务描述 本关任务#xff1a;要求编写程序实现直接插入排序的功能。
相关知识 直接插入排序#xff0c;是指将无序序列中的各元素依次插入到已经有序的数组中。
假设数组中前 i-1 元素已经有序#xff0c;现在要将线性表中第 i 个元素插入到前面的有序子表中#xff0c;…任务描述 本关任务要求编写程序实现直接插入排序的功能。
相关知识 直接插入排序是指将无序序列中的各元素依次插入到已经有序的数组中。
假设数组中前 i-1 元素已经有序现在要将线性表中第 i 个元素插入到前面的有序子表中插入过程如下
以长度为 n8 的序列 136131927511 的插入排序过程做示范 第 1 趟将数组第 2 个元素 6 向前插入后则数组中元素为 613131927511 第 2 趟将数组第 3 个元素 1 向前插入后则数组中元素为 161331927511 第 3 趟将数组第 4 个元素 31 向前插入后则数组中元素为 161331927511 …… 第 7 趟将数组第 8 个元素 11 向前插入后则数组中元素为 1569,11132731 总之共执行 7 趟操作可将有 n8 个元素的数组排成有序序列。
#include stdio.h
#include stdlib.h
#define N 100int main() {int n, i, j, temp;int a[N];// 读取非负整数Nscanf(%d, n);// 读取N个整数for (i 0; i n; i) {scanf(%d, a[i]);}// 直接插入排序for (i 1; i n; i) {temp a[i]; // 当前要插入的元素for (j i - 1; j 0 a[j] temp; j--) {a[j 1] a[j]; // 后移}a[j 1] temp; // 插入// 输出每次插入排序后的结果for (int k 0; k n; k) {printf(%d , a[k]);}printf(\n);}return 0;
}