封装成函数:
//选出第k小元素,k为1~len(s)func SelectKthMin(s []int, k ) int { k-- lo hi := 0 lens)-1for j partition hiif< k lo =+}else>-return s[k]}}//选出中位数(比一半的元素小,比另一半的大)func SelectMid SelectKthMin)/2)//选出k个最小元素,k为1~len(k)func SelectKMin[:func partition hi i+++ i ==||ilobreak jj<=>= swapfunc swap i j ],161)">]}
测试: