1. ► Big-O notation has no hidden constant
2. ► Greedy algorithm doesn’t guarantee global optimal
3. ► Binary search only operates on sorted sequence
4. ► Good data structure make programs more efficient
5. ► Smaller order terms cannot be ignored in analysis for small data set
6. ► Data structure needing large contiguous memory might fail to work even if that much memory is available
7. ► Exact figures of memory usage is not important
8. ► Topological sort requires O(V) space
9. ► Connected component algorithm is there in boost library
10. ► Brute force string matching relies on char by char comparison
11. ► Average case complexity of Rabin-Karp is O(nm)
12. ► Frequent cheap operations compensate expensive operations
13. ► Greedy algorithms always select local best possible solution
14. ► Rabin-Karp algorithm relies on hash function to convert strings to numbers
15. ► Amortized analysis is applicable when there is certain relationship between cheap and expensive operations