概述
心血来潮,突然想写个排序:
package main
import "fmt"
func kp(s []int, l, r int) {
if l < r {
i, j := l, r
k := s[l]
for {
for {
if i < j {
if s[j] < k {
s[i] = s[j]
break
} else {
j--
}
} else {
break
}
}
for {
if i < j {
if s[i] > k {
s[j] = s[i]
break
} else {
i++
}
} else {
break
}
}
if i < j {
continue
} else {
s[i] = k
kp(s, l, i-1)
kp(s, i+1, r)
return
}
}
}
}
func main() {
a := []int{1, 6, 2, 4, 8, 5, 7, 3, 0, 9}
b := []int{0, 7, 3, 1, 4, 5, 8, 9, 2, 6}
kp(a, 0, len(a)-1)
fmt.Println(a)
kp(b, 0, len(b)-1)
fmt.Println(b)
}