a) Write the best (in terms of worst-case running time) algorithm that determines if an integer array has duplicate elements. Note that if you do not come up with the best algorithm, you will receive most of the points if you write a correct algorithm.
b) Determine a function f(n) that is the exact worst-case running-time of the algorithm.
c) Determine a function g(n) that is a good lower-bound of the best-case running-time of the algorithm.