某个算法的时间复杂度递归式T(n)=T(n-1)+n,其中n为问题的规模,则该算法的渐进时间复杂度为(请作答此空),若问题的规模增加了16倍,则运行时间增加( )倍。A.O(n)B.O(nlgn)C.O(n2)D.O(n2lgn)
某个算法的时间复杂度递归式T(n)=T(n-1)+n,其中n为问题的规模,则该算法的渐进时间复杂度为(请作答此空),若问题的规模增加了16倍,则运行时间增加( )倍。
A.O(n)
B.O(nlgn)
C.O(n2)
D.O(n2lgn)
B.O(nlgn)
C.O(n2)
D.O(n2lgn)
参考解析
解析:对于递归式,假设T(1)=1,则:T(n)=T(n-1)+n=T(n-2)+n-1+n=T(n-3)+n-2+n-1+n=1+2+…+n-1+n=n(n+1)/2可见,时间复杂度为O(n2)。若问题的规模增加了16倍,则运行时间增加了162=256倍。
相关考题:
某算法的时间复杂度表达式为T(n)=an2+bnlgn+cn+d,其中,n为问题的规模,a、b、c和d为常数,用O表示其渐近时间复杂度为( )。A.(n2)B.O(n)C.O(nlgn)D.O(1)
下面算法的时间复杂度为(34)。 int f(unsigned int n){ if(n=0||n==1)return 1; else return n*f(n-1); }A.O(1)B.O(n)C.O(n2)D.O(n!)
对n个基本有序的整数进行排序,若采用插入排序算法,则时间和空间复杂度分别为(62);若采用快速排序算法,则时间和空间复杂度分别为(63)。A.O(n2)和O(n)B.O(n)和O(n)C.O(n2)和O(1)D.O(n)和O(1)
计算N!的递归算法如下,求解该算法的时间复杂度时,只考虑相乘操作,则算法的计算时间T(n)的递推关系式为(55);对应时间复杂度为(56)。int Factorial (int n){//计算n!if(n<=1)return 1;else return n * Factorial(n-1);}(62)A.T(n)=T(n-1)+1B.T(n)=T(n-1)C.T(n)=2T(n-1)+1D.T(n)=2T(n-1)-1
在某个算法时间复杂度递归式T(n)=T(n-1)+n,其中n为问题的规模,则该算法的渐进时间复杂度为( ),若问题的规模增加了16倍,则运行时间增加( )倍。A.(n) B.(nlgn) C.(n2) D.(n2lgn) A.16 B.64 C.256 D.1024
某个应用中,需要对输入数据进行排序,输入数据序列基本有序(如输入为1,2,5,3,4,6,8,7)。在这种情况下,采用( )排序算法最好,时间复杂度为(请作答此空)。A.O(n)B.O(nlgn)C.O(n^2)D.O(n^2lgn)
给定包含n个正整数的数组A和正整数x,要判断数组A中是否存在两个元素之和等于x,先用插入排序算法对数组A进行排序,再用以下过程P来判断是否存在两个元素之和等于x。low=1;high=n;while(high>low)if A[low]+A[high]=x return true;else if A[low]+A[high]>x low++;else high--;return false;则过程P的时间复杂度为( ),整个算法的时间复杂度为(请作答此空)。A.O(n)B.O(nlgn)C.O(n2)D.O(n2lgn)
某个算法的时间复杂度递归式T(n)=T(n-1)+n,其中n为问题的规模,则该算法的渐进时间复杂度为(62),若问题的规模增加了16倍,则运行时间增加(63)倍。A.16B.64C.256D.1024
某个算法的时间复杂度递归式T(n)=T(n-1)+n,其中n为问题的规模,则该算法的渐进时间复杂度为( ),若问题的规模增加了16倍,则运行时间增加(请作答此空)倍。A.16B.64C.256D.1024
某个算法的时间复杂度递归式T(n)=T(n-1)+n,其中n为问题的规模,则该算法的渐进时间复杂度为(62),若问题的规模增加了16倍,则运行时间增加(63)倍。 A.O(n)B.O(nlgn)C.O(n2)D.O(n2lgn)