试题详情
- 简答题如果只想得到一个序列中第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。 关注下方微信公众号,在线模考后查看
热门试题
- 栈中能插入删除的一端和另一端分别叫()。
- 设有一个长度为s的字符串,其字符顺序存放
- 对于结点类型为LNode的单链表,编写
- 一个数组元素a[i]与()的表示等价。
- 使用三元组表示稀疏矩阵的元素,有时并不能
- 在作退栈运算时应先判别栈是否()。
- 设数组Data[m+1]作为循环队列sq
- 编写一算法,求出一棵二叉树中所有结点数和
- 顺序栈S中top为栈顶指针,指向栈顶元素
- 对于线性表的顺序存储,需要预先分配好存储
- 数据结构里,函数参数为哪项时,参数传递属
- 某带头结点的单链表的头指针head,判定
- 数组Q[n]用来表示一个循环队列,f为当
- 分别以下序列构造二叉排序树,与用其他三个
- 在稀疏矩阵所对应的三元组线性表中,每个三
- 线性表的逻辑结构是()结构,其所含结点的
- 数据的逻辑结构在计算机内存中的表示是()
- 一个序列中有10000个元素,若只想得到
- 在各种查找方法中,平均查找长度与结点个数
- 设指针变量p指向单链表中结点A,若删除单