用c++实现的平均O(n)时间和最坏O(n)时间求数组中第i大的数