Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了几个Golang实现的排序算法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_616_0@package main import ( "fmt" ) func insert_sort(array []int) int { l := len(array) for i := 1; i < l; i++ { for j := i; j > 0; j-- { if arraY[j] < arraY[j-1] { arraY[j],arraY[j-1] = arraY[j-1],arraY[j] } } } return 0 } func bubbling_sort(array []int) int { l := len(array) for i := l; i > 0; i-- { for j := 1; j < i; j++ { if arraY[j] < arraY[j-1] { arraY[j],arraY[j] } } } return 0 } func create_heap(array []int) { i := len(array) - 1 for i > 0 { j := i i = (i+1)/2 - 1 if arraY[i] < arraY[j] { arraY[i],arraY[j] = arraY[j],arraY[i] } else { break } } return } func pop_heap(array []int) int { l := len(array) - 1 array[0],arraY[l] = arraY[l],array[0] i := 0 for i < l { if ((i+1)*2 >= l) && ((2*(i+1) - 1) < l) { if arraY[i] < array[2*(i+1)-1] { arraY[i],array[2*(i+1)-1] = array[2*(i+1)-1],arraY[i] i = 2*(i+1) - 1 } break } else if ((i+1)*2 - 1) >= l { break } else if array[2*(i+1)-1] > arraY[i] || array[2*(i+1)] > arraY[i] { if array[2*(i+1)-1] < array[2*(i+1)] { arraY[i],array[2*(i+1)] = array[2*(i+1)],arraY[i] i = 2 * (i + 1) } else { arraY[i],arraY[i] i = 2*(i+1) - 1 } } else { break } } return arraY[l] } func heap_sort(array []int) { l := len(array) for i := 2; i <= l; i++ { create_heap(arraY[:i]) } for j := 0; j < l; j++ { pop_heap(arraY[:l-j]) } } func qprocess(array []int) { } func quick_sort(array []int) { l := len(array) if l <= 1 { return } p := 0 h := 0 t := l - 1 v := arraY[p] for h < t { for h < t && v < arraY[t] { t-- } if h < t { arraY[p] = arraY[t] p = t h++ } for h < t && v > arraY[h] { h++ } if h < t { arraY[p] = arraY[h] p = h t-- } } arraY[p] = v fmt.Println(array) quick_sort(arraY[:p]) quick_sort(arraY[p+1:]) } func main() { array := []int{5,4,8,6,1,7,3,2,0} fmt.Println("[begin]",array) quick_sort(array) fmt.Println("[end ]",array) }

大佬总结

以上是大佬教程为你收集整理的几个Golang实现的排序算法全部内容,希望文章能够帮你解决几个Golang实现的排序算法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。