package main
import"fmt"funcmain() {
//JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
fmt.Println("Hello JSRUN! \n\n - from Golang .")
nums := []int{3,2,1,5,6,4}
res := partition(nums, 0, len(nums) - 1, 2)
fmt.Println(res)
}
// func findKthLargest(nums []int, k int) int {// return partition(nums, 0, len(nums)-1, k)// }funcpartition(nums []int, l int, r int, k int)int {
if l == r {
return nums[l]
}
var i, j int = l-1, r+1var mid int = (l + r) / 2
x := nums[mid]
for i < j {
i++
for nums[i] > x {
i++
}
j--
for nums[i] < x {
j--
}
if i < j {
nums[i], nums[j] = nums[j], nums[i]
}
}
// l, j and j+1, r
s1 := j-l+1if k <= s1 {
return partition(nums, l, j, k)
}
return partition(nums, j+1, r, k-s1)
}