O(n2) O(nlgn) O(n)