题库 题库

【简答题】

试题一
  阅读下列说明、流程图和算法,将应填入__(n)__处的字句写在答题纸的对应栏内.
[流程图说明]
  下面的流程图用N—S盒图形式描述了数组A中的元素被划分的过程.其划分方法是:
  以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动.当划分结束时,基准数定位于A[i],并且数组中下标小于i的元素的值均小于基准数,下标大子i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:
[流程图]
    
[算法说明]
  将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int A[],int low,int high)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数void sort(int A[],iht L,int H)的功能是实现数组A中元素的递增排序。
[算法]
 void sort(int A[],iht l,int H) {
 if ( L < H ) {
  k=p(A,L,R);     //p()返回基准数在数组A中的下标
  sort(__ (4)__;     //小于基准数的元素排序
  sortl__ (5)__);    //大于基准数的元素排序
  }
 }

参考答案

(1)j ← j-1
(2)I ← i+1
(3)A[i]←pivot 或 [j]←pivot
(4)A,L,k-I 或A,L,k
(5)A,k+I,H 或A,k,H 

相关试题