(1) 寻找序列中第i小的元素
基本思想(递归划分):
1) 使用快速排序中使用的方法对序列进行划分(最好使用随机版本),并返回划分位置(划分使得划分点左侧元素的值小于等于x,右侧的元素的值大于等于x)。
2) 若划分位置==i,则返回划分位置处的值;划分位置<i,从划分位置左侧继续划分;划分位置>i,从划分位置右侧继续划分。
3) 重复上述过程,直到划分位置等于i。
期望时间复杂度:[latex]\Theta(n)[/latex]。
最差时间复杂度:[latex]\Theta(n^2)[/latex]。