package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var n, k, i int64
fmt.Scanf("%d %d", &n, &k)
q := make([]int, n)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
in := bufio.NewReader(os.Stdin)
read_int := func() (x int) {
c, _ := in.ReadByte()
for ; c < '0'; c, _ = in.ReadByte() {
}
for ; c >= '0'; c, _ = in.ReadByte() {
x = x*10 + int(c-'0')
}
return
}
for i = 0; i < n; i++ {
q[i] = read_int()
}
//for i = 0; i < n; i++ {
// fmt.Scan(&q[i])
//}
sort(q, 0, n-1)
fmt.Println(q[k])
}
func sort(q []int, l, r int64) {
if l >= r {
return
}
x, i, j := q[l], l-1, r+1
for i < j {
for {
i++
if q[i] >= x {
break
}
}
for {
j--
if q[j] <= x {
break
}
}
if i < j {
q[i], q[j] = q[j], q[i]
}
}
sort(q, l, j)
sort(q, j+1, r)
}
参考:https://blog.csdn.net/qq_41961459/article/details/115752865