早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->
A.O(n2)和O(1)B.O(nlog2n)和O(1)C.O(nlog2n)和O(n)D.O(n2)和O(1)
题目
A.O(n2)和O(1)
B.O(nlog2n)和O(1)
C.O(nlog2n)和O(n)
D.O(n2)和O(1)
参考答案
正确答案:B
解析:堆排序是一种树形选择排序,是对直接选择排序的有效改进。堆排序来源于一种称为比赛树的排序方法。用比赛树进行排序的方法是:先对n个结点的键值进行两两比较,再对其中n/2个较大的键值之间作两两比较,依此类推,直至选出键值最大的结点。这个过程可用一棵有2n-1个结点的丰满二叉树来表示,二叉树的叶子结点是待排序的结点序列,二叉树的非叶子结点是层层比较产生的结点。除第一个最大者需比较n-1次外,选其他任一结点都只需从叶结点到根结点路径上那些结点的比较,其比较次数与二叉树的高度相对应,比较次数为O(log2n)。总比较次数为O(nlog2n)。堆排序的过程为:(假设是大顶堆)初始时调整n个结点的存储顺序,使之成为一个堆,这时堆的根结点键值是最大者。然后将根结点与堆的最后一个结点交换,并对少了一个结点后的n-1结点重新作调整,使之再次成为堆。这样,在根结点得到结点序列键值次最大者。再次将堆的根结点与堆的最后一个结点交换,并重新使又少了一个结点的序列调整成为堆。依此类推,直至只有两个结点的堆,并对它们作交换,最后得到有序的n个结点序列。所以堆排序的思想是:选择最大的结点与最后一个结点交换,然后选择次最大结点与倒数第二个结点交换,…,所以堆排序是选择类排序,它只需要1个附加的存储空间。
解析:堆排序是一种树形选择排序,是对直接选择排序的有效改进。堆排序来源于一种称为比赛树的排序方法。用比赛树进行排序的方法是:先对n个结点的键值进行两两比较,再对其中n/2个较大的键值之间作两两比较,依此类推,直至选出键值最大的结点。这个过程可用一棵有2n-1个结点的丰满二叉树来表示,二叉树的叶子结点是待排序的结点序列,二叉树的非叶子结点是层层比较产生的结点。除第一个最大者需比较n-1次外,选其他任一结点都只需从叶结点到根结点路径上那些结点的比较,其比较次数与二叉树的高度相对应,比较次数为O(log2n)。总比较次数为O(nlog2n)。堆排序的过程为:(假设是大顶堆)初始时调整n个结点的存储顺序,使之成为一个堆,这时堆的根结点键值是最大者。然后将根结点与堆的最后一个结点交换,并对少了一个结点后的n-1结点重新作调整,使之再次成为堆。这样,在根结点得到结点序列键值次最大者。再次将堆的根结点与堆的最后一个结点交换,并重新使又少了一个结点的序列调整成为堆。依此类推,直至只有两个结点的堆,并对它们作交换,最后得到有序的n个结点序列。所以堆排序的思想是:选择最大的结点与最后一个结点交换,然后选择次最大结点与倒数第二个结点交换,…,所以堆排序是选择类排序,它只需要1个附加的存储空间。
看了A.O(n2)和O(1)B.O...的网友还看了以下:
在1/n和n+1中插入n个数在1/n和n+1之间插入n个正数,使这n+2个数一次成等比数列求公比Q 数学 2020-05-13 …
一道时间复杂度的题...没方向,求详解...急已知有实现同一功能的两个算法,其时间复杂度分别为O( 数学 2020-06-08 …
组成糖原和脂质的主要化学元素分别是()A.C、H、O和C、H、OB.C、H、O和C、H、O、NC. 语文 2020-06-27 …
已知有序数列A[1..n]和一个正整数x,设计一个复杂度为O(n)的算法,判断A中是否有两个元素它 其他 2020-07-10 …
O(m+n)和O(km+ln)表示的复杂度是否一样?其中m和n是问题空间的两个变量,k和l可以认为 数学 2020-07-22 …
分治法找两数组的中值设X[1..n]和Y[1..n]是两个有序数组,试设计运行时间为O(1bn)的 其他 2020-07-23 …
为什么:1+1/2+1/3+…1/n+…发散,而1+1/8+1/27+…1/(n^3)+…收敛呢? 数学 2020-07-31 …
已知递推公式An=n*A(n-1)+(n-1)!,求An可以写成其他形式吗?不用阶乘,而用关于n的 数学 2020-08-01 …
已知有序数列A[1..n]和一个正整数x,设计一个复杂度为O(n)的算法,判断A中是否有两个元素它们 数学 2020-12-09 …
求极限:n趋向于无穷时,[(1+1/n)^n^2]*(1/e)^n计算貌似用到o(1/n),答案是e 数学 2020-12-15 …