Golang快速排序算法
2014-04-10 12:43
295 查看
package main import ( "fmt" ) func QSort(arr []int, start int, end int) { var ( key int = arr[start] low int = start high int = end ) for { for low < high { if arr[high] < key { arr[low] = arr[high] break } high-- } for low < high { if arr[low] > key { arr[high] = arr[low] break } low++ } if low >= high { arr[low] = key break } } if low-1 > start { QSort(arr, start, low-1) } if high+1 < end { QSort(arr, high+1, end) } } func main() { arr := []int{5, 1, 3, 0, 9, 8, 7, 4, 6} QSort(arr, 0, len(arr)-1) fmt.Println(arr) }
如果转载请注明出处:http://blog.csdn.net/gophers/article/details/23346587
相关文章推荐
- 快速排序算法 原理及golang语言实现
- golang快速排序算法
- Golang的安装
- golang基础01
- golang的垃圾回收与Finalizer——tcp连接是如何被自动关闭的
- golang:吐槽multipart的设计
- Golang通关初级(4)
- golang 创建一个简单的连接池,减少频繁的创建与关闭
- Sublime+Golang Plugin
- 解决vscode无法提示golang的问题
- golang 小web
- golang统计出其中英文字母、空格、数字和其它字符的个数
- [Golang] base64加密与解密
- golang 使用pprof和go-torch做性能分析
- golang--base64编码加des加密
- golang 40行代码实现通用协程池
- 【golang】go-ConcurrentMap实现
- Golang学习之平滑重启
- golang生成二维码
- Golang程序 在windows下编译成Linux下可执行的二进制文件并且执行