问题 问答题

试题一

阅读下列说明、流程图和算法,将应填入 (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[],int L,int H )的功能是实现数组A 中元素的递增排序。

[算法]

void sort(int A[], int L, int H) {

if ( L < H ) {

k = p(A, L, H); //p()返回基准数在数组A 中的下标

sort( (4) ); //小于基准数的元素排序

sort( (5) ); //大于基准数的元素排序

}

}

答案

参考答案:

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

单项选择题
单项选择题 A1/A2型题