Golang之排序算法

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

冒泡排序

package main //冒泡排序 import "fmt" func bsort(a []int) { for i := 0; i < len(a); i++ { for j := 1; j < len(a)-i; j++ { if a[j] < a[j-1] { a[j], a[j-1] = a[j-1], a[j] } } } } func main() { b := [...]int{8, 7, 5, 4, 3, 10, 15} bsort(b[:]) fmt.Println(b) }

选择排序

package main import "fmt" //冒泡排序  func ssort(a []int) { for i := 0; i < len(a); i++ { var min int = i for j := i + 1; j < len(a); j++ { if a[min] > a[j] { min = j } } a[i], a[min] = a[min], a[i] } } func main() { b := [...]int{8, 7, 5, 4, 3, 10, 15} ssort(b[:]) fmt.Println(b) }

插入排序

package main import "fmt" //冒泡排序  func isort(a []int) { for i := 1; i < len(a); i++ { for j := i; j > 0; j-- { if a[j] > a[j-1] { break } a[j], a[j-1] = a[j-1], a[j] } } } func main() { b := [...]int{8, 7, 5, 4, 3, 10, 15} isort(b[:]) fmt.Println(b) }

快速排序

package main import "fmt" //快速排序  func qsort(a []int, left, right int) { if left >= right { return } val := a[left] k := left //确定val所在的位置 for i := left + 1; i <= right; i++ { if a[i] < val { a[k] = a[i] a[i] = a[k+1] k++ } } a[k] = val qsort(a, left, k-1) qsort(a, k+1, right) } func main() { b := [...]int{8, 7, 5, 4, 3, 10} qsort(b[:], 0, len(b)-1) fmt.Println(b) }

 


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

本文来自:博客园

感谢作者:pyyu

查看原文:Golang之排序算法

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

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