假设在排序过程中,前3个数据已完成升序排列,构成一个有序序列49,60,71。
将待排序数据中的第4个数据(即11)插入上述有序序列,以得到一个新的含4个数据的有序序列。首先,应找到11的插入位置,再进行插入。可以将11放入数组的第一个元素r(0)中,这个元素称为监视哨,然后从71起从右到左查找,11小于71,将71右移一个位置,11小于60,又将60右移一个位置,11小于49,又再将49右移一个位置,这时再将11与r(0)的值比较,11≥r(0),它的插入位置就是r(1)。假设11大于第一个值r(1),它的插入位置应该在r(1)和r(2)之间,由于60已经右移了,留出来的位置正好留给11,后面的数据依照同样的方法逐个插入到该有序序列中。若数据有n个,须进行n-1趟排序,才能完成。
以下VB程序执行后,数组元素a(1)的值是( )
a(1)=10:a(2)=18:a(3)=12:a(4)=6:a(5)=9
for i=2 to 5
a(0)=a(i)
j=i-1
do while a(0)>a(j)
a(j+1)=a(j)
j=j-1
loop
a(j+1)=a(0)
next i