still have O(n lg n) time but not backwash