问题
问答题
试题一
阅读下列说明、流程图和算法,将应填入 (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