📜  数据结构和算法|套装38

📅  最后修改于: 2021-06-28 17:16:35             🧑  作者: Mango

本主题包含“算法”的基本问题,可能对“ GATE CS准备”有所帮助。因此,如果您要为GATE做准备,建议解决每个问题。

Ques-1:以下哪一项正确地确定了下面给出的T(1)= 1的递归关系的解?

T(n)= 2T(n/4) + n1/2 

(A) O(n 2 )
(B) O(n)
(C) O(n 1/2 log n)
(D) O(log n)

解释:
根据大师定理,

T(n)= 2T(n/4) + n1/2 

应用大师定理,
这里,

a = 2, b = 4, K = 1/2, and p = 0 

So, bK = 41/2 = 2 
Thus, a = bK and (p > -1) 

因此,公式是

T(n)= O(nlogba log(P+1)n)

所以,

T(n) = O(nlog 42 log(0 + 1)n) = O(n1/2 log n)

因此,选项(C)是正确的。

Ques-2:用于将大小为p和q的两个未排序列表合并为大小为(p + q)的排序列表。就比较次数而言,时间复杂度为:

(A) O(对数p +对数q)
(B) O(p对数p)+ q对数q)
(C) O(p + q)
(D)

解释:
为了分别对大小为p的数组进行排序,需要花费O(p log p),大小为q的数组需要花费O(q log q)时间,然后合并将花费O(m + n)时间。
因此,比较总数

= O(p log p) + O(q log q) + p + q
= O(p log p) + O(q log q) 

因此,选项(B)是正确的。

问题3:使用数组数据结构,以下哪种排序算法的最佳情况下时间复杂度最高?

(一)堆排序
(B)插入排序
(C)冒泡排序
(D)选择排序

解释:
堆排序的最佳情况下时间复杂度为O(n log n)
插入排序的最佳情况下时间复杂度为O(n)
冒泡排序的最佳情况下时间复杂度为O(n)
选择排序的最佳情况下时间复杂度为O(n 2 )。
因此,选项(D)是正确的。

问题4:以下哪个输入为选择排序提供了最佳的案例时间?

(A) 1 2 3 4 5 6 7 8 9
(B) 2 3 1 5 9 7 8 6
(C) 9 8 7 6 5 4 3 2 1
(D)以上所有花费相同的时间。

解释:
最坏情况和最佳情况下的选择排序需要相同的时间。
因此,选项(D)是正确的。

问题5:下面给出的递归函数的时间复杂度是多少:

T(n)= 4T(n/2) + n2 

(A) O(n 2 )
(B) O(n)
(C) O(n 2 log n)
(D) O(n log n)

解释:
根据大师定理,
这里,

a = 4, b = 2, k = 2, p = 0 

So, bk = 4 i.e., a = bk 

因此,公式为

T(n) = O(nlog ba log(P+1)n)

So, T(n)= O(nlog 24 log(0 + 1)n) = O(n2 log n)

因此,选项(C)是正确的。