代码拉取完成,页面将自动刷新
package main
import (
"fmt"
"github.com/hyq/Learn/hsort"
)
const MAX = 10
var sortArray = []int{64,45,76,32,5,642,354,320,11,35}
func main() {
//fmt.Println("before sort:")
// //show()
// //
// //quickSort(sortArray, 0, MAX-1)
// //
// //fmt.Println("after sort:")
// //show()
hsort.Qsort(sortArray,0,len(sortArray)-1)
fmt.Println(sortArray)
}
func quickSort(sortArray []int, left, right int) {
if left < right {
pos := partition(sortArray, left, right)
quickSort(sortArray, left, pos-1)
quickSort(sortArray, pos+1, right)
}
}
func partition(sortArray []int, left, right int) int {
key := sortArray[right]
i := left - 1
for j := left; j < right; j++ {
if sortArray[j] <= key {
i++
swap(i, j)
}
}
swap(i+1, right)
return i + 1
}
// Swap the position of a and b
func swap(a, b int) {
sortArray[a], sortArray[b] = sortArray[b], sortArray[a]
}
// foreach
func show() {
for _, value := range sortArray {
fmt.Printf("%d\t", value)
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。