1 Star 0 Fork 0

muyouking/Learn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
02_快速排序.go 986 Bytes
一键复制 编辑 原始数据 按行查看 历史
muyouking 提交于 2020-07-09 16:04 . 冒泡,插入排序
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)
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/muyouking/Learn.git
git@gitee.com:muyouking/Learn.git
muyouking
Learn
Learn
master

搜索帮助