试题详情
- 简答题如果只想得到一个序列中第k个最小元素之前的部分排序序列,最好采用什么排序方法?为什么?对于序列{57,40,38,11,13,34,48,75,25,6,19,9,7},得到其第4个最小元素之前的部分序列{6,7,9,11},使用所选择的排序算法时,要执行多少次比较?
- 采用堆排序最合适,依题意可知只需取得第k个最小元素之前的排序序列时,堆排序的时间复杂度Ο(n+klog2n),若k≤nlog2n,则得到的时间复杂性是Ο(n)。
对于上述序列得到其前4个最小元素,使用堆排序实现时,执行的比较次数如下:初始建堆:比较20次,得到6;
第一次调整:比较5次,得到7;
第二次调整:比较4次,得到9;
第三次调整:比较5次,得到11。 关注下方微信公众号,在线模考后查看
热门试题
- 设输入序列是1、2、3、……、n,经过栈
- 在表结构中最常用的是线性表,栈和队列不太
- 二维数组A[m][n]采用行序为主方式存
- 在栈中存取数据遵从的原则是()。
- 简述常用的四种哈希函数及其计算规则。
- 已知某树的先根遍历次序为abcdefg,
- 简述查找的作用。
- 静态链表中指针表示的是().
- 将有关二叉树的概念推广到三叉树,则一棵有
- 最大容量为n的循环队列,队尾指针是rea
- 图中各个顶点的编号是人为的,不是它本身固
- 阅读下列算法,并回答下列问题: 该算法采
- 关键路径是AOE网中()。
- 有向图G用邻接矩阵A[n][n]存储,其
- 数据结构里,栈的应用很广泛,递归问题的解
- 堆是一个完全二叉树。
- 设有一上三角形矩阵A[5][5]按行压缩
- 两个字符串相等的充要条件是()和()。
- 由权值分别为3,8,6,2,5的叶子结点
- 依次插入序列(50,72,43,85,7