Understanding Algorithm: Complexity and Performance