
如图【任务2】已知一个有序序列{5,8,12,15,26,78,92,93,102},现要求将数据值25插入到该序列中,插入后仍然保证数据序列的有序性。
算法分析:
(1)定义一维数组a[N]存放已知的有序序列{5,8,12,15,26,78,92,93,102}。
(2)从数组的最后一个元素开始和需要插入的数据值25进行比较,如果当前元素值比25大,则元素值后移1位(即下标+1)。
(3)重复步骤2,直到找到第一个比25小的数组元素a
,该元素的直接后继就应该是25,所以25在数组中的正确下标应该是i+1。
(4)将数据值25插入到数组的正确位置上,即a[i+1]=25。
#include <stdio.h>
#define N 10
void main()
{ __________; //blank1:步骤1
int i=N-2,data=25;
while(__________) //blank2:步骤2和步骤3
{ __________;
__________;
}
__________; //blank3:步骤4
printf("输出插入25后的有序序列\n");
for(i=0;i<N;i++)
printf("%-5d",a);
printf("\n");
}