A、递推法
B、分治法
C、递归法
D、穷举法
第2题
找第k小问题的分治算法. 算法开始将n个数分成5个1组,共个组,然后取每组的中位数构成集合M,递归利用找第k小算法,计算M的中位数,用作为标准划分数组,得到子问题和. 递归求解其中一个子问题即可. 如果开始分组时是3个元素一组,算法在最坏情况下的时间复杂度将达到,如果开始分组时取7个元素一组,那么用划分数组后产生的子问题最大规模将达到( ),算法在最坏情况下的时间复杂度是( ),两个括号里分别应该填:
A、
B、
C、
D、
第3题
[说明]
快速排序是一种典型的分治算法。采用快速排序对数组A[p..r]排序的3个步骤如下。
1.分解:选择一个枢轴(pivot)元素划分数组。将数组A[p..r]划分为两个子数组(可能为空)A[p..q-1]和A[q+1..r],使得A[q]大于等于A[p..q-1]中的每个元素,小于A[q+1..r]中的每个元素。q的值在划分过程中计算。
2.递归求解:通过递归的调用快速排序,对子数组A[p..q-1]和A[q+1..r]分别排序。
3.合并:快速排序在原地排序,故无需合并操作。
下面是快速排序的伪代码,请将空缺处(1)~(3)的内容填写完整。伪代码中的主要变量说明如下。
A:待排序数组
p,r:数组元素下标,从p到r
q:划分的位置
x:枢轴元素
i:整型变量,用于描述数组下标。下标小于或等于i的元素的值,小于或等于枢轴元素的值
j:循环控制变量,表示数组元素下标
第10题
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!