|
本题添加时间:2023/6/28 21:33:00 |
|
圆梦客服:王老师 19139051760(微信同号) 19139051760(微信同号) |
以下程序是快速排序的算法 设待排序的记录序列存放在a[start],…a[end]中,按记录的关键字进行快速排序,先进行一次划分,再分别进行递归调用。 void quicksort ( NODE a[ ], int start ,int end ) { int i,j; NODE mid ; if (start>=end ) return; i=start; j=end; mid=a[i]; while (i { while(imid.key) j- -; if(i { a[i]=a[j]; ___(1)_____; } while(i ___(2)_____; if(i { ___(3)_____; ___(4)_____; } } a[i]=mid; quicksort (a,stat, i-1); quicksort ___(5)_____; } 【答案选项】 A. a[j]=a[i] B. (a, i+1,end) C. i++ D. j--
|
答案是:正确选择 (1) C. i++ (2) C. i++ (3) A. a[j]=a[i] (4) D. j-- (5) B. (a, i+1,end)
出自
国家开放大学数据结构复习题 国家开放大学系统
郑州大学
|
更多试题>>>>
1、以下函数为直接选择排序算法,对a[1],a[2],…a[n]中的记录进行直接选择排序。
typedef struct
{ int key;
……
}NODE;
void selsort(NODE a[],int n)
2、以下冒泡法程序对存放在a[1],a[2],……,a[n]中的序列进行排序,其中n是元素个数,要求按升序排列。
void bsort (NODE a[ ], int n)
{ NODE temp;
int i,j,flag;
3、以下程序是折半插入排序的算法
设待排序的记录序列存放在a[1],…a[n]中,以a[0]作为辅助工作单元,程序是要把a[i] 插入到已经有序的序列a[1],…a[i-1]中。
4、以下直接插入排序算法对存放在a[0],a[1],···,a[n-1]中,长度为n的记录序列按关键字key由小到大排序。
void disort (NODE a[ ], int n)
{ int i,j;
NODE temp
5、(1)对关键字序列(56,51,71,54,46,106),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( )。
A. 46,51,56,54,71,106
|
|