(A) O(logn) Binary search
(C) O(nlogn) heap sort
I think this two are straight forward.
(B) O(n) for BFS and DFS it takes O(E+V) time, here we may assume that n is number of vertices or number of edges depending on which one is greater
D) O(n2) please refer case 4 on https://www.geeksforgeeks.org/kth-smallestlargest-element-unsorted-array/ and
here we are using modified version of quick sort,
for example if we want to find 3 largest element i.e. k=3 , then at some point while execution of quick sort , it will pick some element as pivot for current loop and will put it at third position.
Worst case complexity is O(n^2) . average case is O(n) bu we always go for worst case hence O(n^2) .