A.O(n)B.O(nlogn)C.O(logn)D.O(n2)
单项选择题下面哪些不是递归算法的特点?()
A.结构清晰B.容易用数学归纳法证明算法的正确性C.递归算法耗费的时间和占用的内存空间要比解决同一问题的非递归算法要少D.可读性强
单项选择题猜数游戏:随机选择一个0~100内的整数,让你猜。猜对了,你赢了,游戏结束。如果没有猜对,会告诉你猜大了,还是猜小了。当然,越早猜对越好。问最少需要猜多少次,就能保证一定能猜对?()
A.6B.101C.51D.7
单项选择题快速排序和归并排序是常用的排序算法,也都是采用分治法解决的问题。快速排序的时间复杂性为O(n2),而归并排序的时间复杂性为O(nlogn),究其原因,下面的解释哪个正确?()
A.这是因为归并排序把问题划分为子问题时的时间复杂性是O(1),而快速排序划分为子问题是使用partition()函数,其时间复杂性是O(n)B.因为归并排序把问题划分为两个子问题时其规模大致相等,是原来规模的n/2,而快速排序划分为子问题是使用partition()函数,划分为子问题时不能保证二个子问题的规模大致相同,在极端状况下,每次都只划分为1个子问题,其规模为原问题规模n-1,因此快速排序在极端状况下的时间复杂性的递归定义为T(n)=T(n-1)+O(n)C.因为快速排序将问题划分为子问题的个数比归并排序要多D.归并排序的分和合的时间复杂性之和低于快速排序的分和合的时间复杂性之和
单项选择题已知斐波那契数列中第n个斐波那契数F(n)=F(n-1)+F(n-2),问能不能使用分治策略求第n个斐波那契数()。
A.不能,因为它不可以用分、治、合三个步骤完成计算B.不能,因为它不满足分治法的第四个适应条件(子问题是相互独立的,也就是没有重复子问题)C.能,因为它满足分治法的四个适应条件D.能,因为它可以用分、治、合三个步骤完成计算
单项选择题分治法的时间复杂性分析,通常是通过分析得到一个关于时间复杂性T(n)的一个递归方程,然后解此方程可得T(n)的结果。T(n)的递归定义如下:关于该定义中k,n m,f(n)的解释准确的是()。
A.k是常系数,n/m是规模为n的问题分为m个子问题,f(n)是将子问题的解合并为问题的解的时间复杂性B.k是子问题个数,n/m是子问题的规模,f(n)是分解为子问题的时间复杂性与合并子问题的解的时间复杂性之和C.k是子问题个数,n/m是子问题的规模,f(n)是规模为n的问题分解为子问题的时间复杂性D.k是常系数;n/m是规模为n的问题分为m个子问题;f(n)是分解为子问题的时间复杂性与合并子问题的解的时间复杂性之和