接前文,除了广泛使用在快速排序中.Partition算法还可以很容易的实现在无序序列中使用O(n)的时间复杂度查找kth(第k大(小)的数). 同样根据二分的思想,每完成一次Partition我们可以轻松的知道该位置前面有几个比自己小的数,后面有几个比自己大的数(或逆序相反).所以也能知道自己是第几大或者小的数. 查找kth(大/小) func partition(left int, right int, arr []int) (int) { i := left j := right pivot…