阅读以下说明和流程图回答问题,将解答填入对应栏。 [说明] “直接插入法”排序是一种N2运算量的例程,只能用在N较小的时候,其方法是:挑出第二个数将它按与第一个数大小的顺序插入,然后挑出第三个数将它按大小顺序插入到前两个数中,如此下去,一直

admin2010-12-16  50

问题 阅读以下说明和流程图回答问题,将解答填入对应栏。
   [说明]
   “直接插入法”排序是一种N2运算量的例程,只能用在N较小的时候,其方法是:挑出第二个数将它按与第一个数大小的顺序插入,然后挑出第三个数将它按大小顺序插入到前两个数中,如此下去,一直到最后一个也插入。
   注:流程中循环开始的说明按照“循环变量:循环初值,循环终值,增量”格式描述。
   
   [问题]
   将流程图的(1)~(5)处补充完整。

选项

答案(1)1,n-1,1; (2) a[j]; (3) a[j]<a[i]; (4) a[i+1]=a[i]; (5) a[i+1]=a;

解析 本题目考查流程图。
   题目中已经给出了直接插入法排序的算法,由于该算法是从数组中第二个数起,取出并与前面的数进行排序,直到数组中最后一个数排序完成,所以,循环变量初值为1,终值为N-1,增量为1,按照题目中要求的格式,则为“1,N-1,1”。
   由题目中的算法可知,我们要将取出来的数同排在其前面的数做比较,并插入,所以,首先要把取出来的数赋给一个变量,即(2)填入“a[j]”。然后从第j-1个数开始,如果a>a[j],那么我们就将aN移一位,以便空出一个位置来插入a[j],所以(4)填入“a[i+1]=a”这样一直进行到a<a[j]或者i<0,这时,我们就找到了a[j]要插入的位置,可以将a[j]插入,即(3)填入“a[j]<a”,(5)填入“a[i+1]=a”。
转载请注明原文地址:https://kaotiyun.com/show/66jZ777K
0

最新回复(0)