For different tasks, we often need to search for things. And most of the time, we sort the dataset before performing search operations. a. To search an element in an unsorted array, we need O(N) time using linear search. Binary search works in O(logN) time but the array needs to be sorted beforehand which takes at least O(NlogN) time in general. Why would you then sort the array first and then perform a binary search instead of just performing a linear search? b. Say, you are working in a system where you need to sort a very big dataset. The memory available to you can barely accommodate the data. You have two options – merge sort & quick sort. Which one should you choose? Why? c. Construct an array where quick sort fails to work in O(NlogN) time.