题库 题库

【简答题】

试题三
    阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
  [函数3.1说明]
    函数insert_sort(int a[],int count)是用直接插入排序法对指定数组的前count个元素从小到大排序。
直接插入排序法的基本思想是:将整个数组(count个元素)看成是由有序的(a[0],…,a[i-1])和无序的(a[i],…,a[Count-1))两个部分组成;初始时i等于1,每趟排序时将无序部分中的第一个元素a[i]插入到有序部分中的恰当位置,共需进行count-1趟,最终使整个数组有序。
[函数3.1]
void insert_sort(int a[] , int count)
{  int i, j, t;
    for(i=1 ; i<count ; i++)
{  /*控制a[i],……, a[count-1]的比较和插入*/
  t=a[i];
  j=  (1)  ;
  while (j>=0 && t<a[j])
  {  /*在有序部分中寻找元素a[i]的插入位置*/
        (2)  ;
      j--;
  }
    (3)  ;
}
}
[函数3.2说明]
    递归函数invert(int a[],int k)将指定数组中的前k个元素逆置。
[函数3.2]
void invert(int a[] , int k);
{  int t;
if (  (4)  )  {
  invert(  (5)  );
  t=a[0];
  a[0]=a[k-1];
  a[k-1]=t;
}
}

参考答案

(1) i-1
(2) a[j+1] = a[j]
(3) a[j+1] = t
(4) k > 1
(5) a+1 , k-2

相关试题