AcWing 786. 第k个数-golang
原题链接
简单
作者:
渲染
,
2024-03-30 14:15:11
,
所有人可见
,
阅读 1
package main
import "fmt"
func quitSort(nums []int,left ,right int){
if left >= right{
return
}
i,j := left-1,right+1
x := nums[(left+right) >> 1] // golang 需要注意括号
for i< j{
for {
i++
if nums[i] >= x{
break
}
}
for {
j--
if nums[j] <= x{
break
}
}
if i < j{
nums[i],nums[j] = nums[j],nums[i]
}
}
quitSort(nums,left,j)
quitSort(nums,j+1,right)
}
func main(){
var n,k int
fmt.Scan(&n,&k)
nums := make([]int,n)
for i:=0;i<n;i++{
fmt.Scan(&nums[i])
}
quitSort(nums,0,n-1)
fmt.Println(nums[k-1])
}