go快速排序

letterbeezps · · 1070 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

# 快速排序GO实现 ## code ```golang package main import "fmt" func main() { arrs := []int{3,5,2,5,7,1,3,5,25,2,15} fmt.Printf("before arr: %v\n", arrs) quick_sort(arrs, 0, len(arrs)-1) fmt.Printf("after arr: %v\n", arrs) } func quick_sort(arr []int, l int, r int) { if l >= r { return } var left, right int = l-1, r+1 mid := (l + r) / 2 x := arr[mid] for left < right { left ++ for arr[left] < x { left ++ } right -- for arr[right] > x { right -- } if left < right { arr[left], arr[right] = arr[right], arr[left] } } // fmt.Printf("temp arr: %v\n", arr) // fmt.Printf("left is %d \n", left) // fmt.Printf("right is %d \n", right) quick_sort(arr, l, right) quick_sort(arr, right+1, r) } ``` ## 打印结果 before arr: [3 5 2 5 7 1 3 5 25 2 15] after arr: [1 2 2 3 3 5 5 5 7 15 25]

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1070 次点击  
加入收藏 微博
2 回复  |  直到 2021-10-26 00:12:14
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传