Find the exact function for the run time of the algorithm (within reason).
No, you don't need to find the limit. The problem is that students will find an algorithm whose runtime is, say, O(n^2), and then an improved algorithm that is O(n^2-1000). However, the limit of (n^2-1000)/n^2 is not 0 but 1. (Why?) Your improved algorithm should be a significant improvement over the original algorithm.
I recommend that you implement both the original and your improved algorithm (using the starter code provided on the course web page) so that you'll see the true running time of the original algorithm and will improve your chances of creating a correct improved algorithm.
That's the algorithm we talked about in class, using Heapify-Up
.
The algorithm takes as input an array that contains the keys.
"Conceptual complexity" is how hard each algorithm is to understand and implement.