排序算法三个(by go)
来源:互联网 发布:python flask下载 编辑:程序博客网 时间:2024/05/30 04:30
bubble:大数据量,慢
package sortfunc BubbleSortByte(c []byte) {length := len(c)sorted := true//optimization2for i := 0; i < length && sorted; i++ {sorted = falsefor j := 0; j < length-i-1; j++ {if c[j] > c[j+1] {tmp := c[j]c[j] = c[j+1]c[j+1] = tmpsorted = true}}}}func BubbleSortInt(c []int) {length := len(c)sorted := true//optimization2for i := 0; i < length && sorted; i++ {sorted = falsefor j := 0; j < length-i-1; j++ {if c[j] > c[j+1] {tmp := c[j]c[j] = c[j+1]c[j+1] = tmpsorted = true}}}}
bucket:大数据量,快
package sortfunc BucketSortByte(a []byte) {length := len(a)max := maxByte(a)buckets := make([]int, max+1)//fmt.Println("max =",max)//for i := 0; i < max; i++ {//buckets[i] = 0//}for i := 0; i < length; i++ {//fmt.Println("a[",i,"] =",a[i])buckets[a[i]]++}k := 0for i := 0; i < max+1; i++ {for j := 0; j < buckets[i] && k < length; j++ {a[k] = byte(i)k++}}}func BucketSortInt(a []int) {length := len(a)max := maxInt(a)buckets := make([]int, max+1)//fmt.Println("max =",max)//for i := 0; i < max; i++ {//buckets[i] = 0//}for i := 0; i < length; i++ {//fmt.Println("a[",i,"] =",a[i])buckets[a[i]]++}k := 0for i := 0; i < max+1; i++ {for j := 0; j < buckets[i] && k < length; j++ {a[k] = ik++}}}func maxByte(a []byte) int {ret := byte(0)for _,v := range a {if v > ret {ret = v}}return int(ret)}func maxInt(a []int) int {ret := 0for _,v := range a {if v > ret {ret = v}}return ret}quick:大数据量,快
package sortfunc QuickSortInt(data []int, left int, right int) {if left < right {key := data[left]low := lefthigh := rightfor low < high {for low < high && data[high] > key {high--}if low < high {data[low] = data[high]low++}for low < high && data[low] < key {low++}if low < high {data[high] = data[low]high--}}data[low] = keyQuickSortInt(data, left, low-1)QuickSortInt(data, low+1, right)}}
0 0
- 排序算法三个(by go)
- GO实现 快速排序算法
- Go实现快速排序算法
- 堆排序算法及go语言实现
- go语言十大排序算法总结
- 图解算法练习--选择排序(Go实现)
- 图解算法练习--快速排序(GO实现)
- 三个简单排序算法的java实现
- 三个简单的算法—冒泡排序
- 算法提高 三个整数的排序
- 算法提高 三个整数的排序
- 算法提高 三个整数的排序
- 蓝桥杯 算法提高 三个整数的排序
- 蓝桥杯 算法提高 三个整数的排序
- 蓝桥杯 算法提高 三个整数的排序
- go语言写的并行排序算法(快速排序)
- 排序算法详解(Go语言实现):冒泡排序/选择排序/快速排序/插入排序
- Go排序
- 关于STM32的IO口IN/OUT控制
- 未来的我们可能需要的三个能力
- Android: 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Effective C++——条款02
- Contact Form 7邮件发送失败的解决办法
- 排序算法三个(by go)
- Deeplearning4j 实战(5):基于多层感知机的Mnist压缩以及在Spark实现
- Problem B. gBalloon Google APAC 2016 University Test Round D
- nefu 119 组合素数
- Contact Form 7邮件发送失败的解决办法
- (PAT)1119. Pre- and Post-order Traversals
- NYOJ 16 矩形嵌套【dp】
- JS中如何快速获取数组中的最大值最小值
- Eclipse中常用快捷键