go使现快速排序
来源:互联网 发布:秦舞阳13岁杀人知乎 编辑:程序博客网 时间:2024/05/17 04:54
go使现快速排序
package main/*Go实现快速排序算法思路:在数组中取出一个元素作为基准值,把其它元素分为两组:“大的”是那些大于基准值的元素,“小的”是那些小于基准值的元素,递归对这两组做排序。快排快速的原因:一旦知道了某个元素比基准值小,它就不需要与那些大的元素比较。而大的元素也不需要与小的元素比较。原理解析:http://blog.csdn.net/yzllz001/article/details/50982841 */import ( "fmt")// 交换数组中两个数的位置func Swap(array []int, i int, j int) { var tmp = array[i] array[i] = array[j] array[j] = tmp}// 方法1, 这种写法看起来代码有点多func QuickSort(array []int, left int, right int) { if left >= right { return } temp := array[left] //temp中存的就是基准数 i := left j := right for ; i !=j; { for ; (array[j] >= temp && i<j); { j-- } for ; (array[i] <= temp && i<j); { i++ } if i < j { Swap(array, i, j) } } Swap(array, left, i) //最终将基准数归位 QuickSort(array, left, i-1) //继续处理左边的,这里是一个递归的过程 QuickSort(array, i+1, right) //继续处理右边的,这里是一个递归的过程}// 方法2, 比较简单,推荐func QuickSort2(array []int, left int, right int) { if left > right { return } last := left for i:=left+1; i<=right; i++ { if array[i] < array[left] { last++ Swap(array, i, last) } } Swap(array, left, last) QuickSort(array, left, last-1) //继续处理左边的,这里是一个递归的过程 QuickSort(array, last+1, right) //继续处理右边的,这里是一个递归的过程}func main() { ary := []int{9,3,10,4,5,7,6,8,1,2} fmt.Printf("排序前为%v\n", ary) QuickSort2(ary, 0, 9) fmt.Printf("排序后为%v\n", ary)}
输出:
排序前为[9 3 10 4 5 7 6 8 1 2]
排序后为[1 2 3 4 5 6 7 8 9 10]
阅读全文
0 0
- go使现快速排序
- 快速排序----Go语言版
- 随笔----go语言版快速排序
- go语言实现快速排序
- GO实现 快速排序算法
- Go实现快速排序算法
- go语言快速排序Quick sort
- 图解算法练习--快速排序(GO实现)
- go语言写的并行排序算法(快速排序)
- Go语言对数组进行冒泡排序和快速排序
- 排序算法详解(Go语言实现):冒泡排序/选择排序/快速排序/插入排序
- GO语言quicksort实现.快速排序法代码实现
- 算法代码实现之快速排序,Golang(Go语言)实现
- go示例1:文件读写和排序(快速 冒泡)
- Go排序
- Go语言快速入门
- Java、Scala、Go以相同方式实现快速排序代码量比较
- 算法代码实现之三向切分快速排序,Golang(Go语言)实现
- 【PHP开发】国外程序员收集整理的 PHP 资源大全
- 将HUSTOJ从Centos6.9成功迁移至Ubuntu 14.04
- C语言实验——矩阵转置
- Odoo 使用do_action打开form视图,target为current时,直接到编辑界面
- babel使用入门
- go使现快速排序
- 六个人如何运维一万台服务器?
- Could not connect to SMTP host: pop.163.com, port: 25 解决方案
- 如何查看Python函数调用图 Ubuntu
- C语言指针问题,初始化,赋值,以及字符数组,字符串常量等问题
- angular中的添加和批量删除
- 我的收藏 的路径
- POJ 1979(简单dfs)
- CSS基础