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 arra
Y[j] < arra
Y[j-1]
{
arra
Y[j],arra
Y[j-1] = arra
Y[j-1],arra
Y[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 arra
Y[j] < arra
Y[j-1]
{
arra
Y[j],arra
Y[j]
}
}
}
return 0
}
func create_heap(array []
int) {
i := len(array) - 1
for i > 0
{
j := i
i = (i+1)/2 - 1
if arra
Y[i] < arra
Y[j]
{
arra
Y[i],arra
Y[j] = arra
Y[j],arra
Y[i]
} else
{
break
}
}
return
}
func pop_heap(array []
int) int
{
l := len(array) - 1
array
[0],arra
Y[l] = arra
Y[l],array
[0]
i := 0
for i < l
{
if ((i+1)*2 >= l) && ((2*(i+
1) - 1) < l)
{
if arra
Y[i] <
array[2*(i+1)-1]
{
arra
Y[i],
array[2*(i+1)-1] =
array[2*(i+1)-1],arra
Y[i]
i = 2*(i+
1) - 1
}
break
} else if ((i+1)*2 - 1) >= l
{
break
} else if
array[2*(i+1)-1] > arra
Y[i] ||
array[2*(i+1)] > arra
Y[i]
{
if
array[2*(i+1)-1] <
array[2*(i+1)]
{
arra
Y[i],
array[2*(i+1)] =
array[2*(i+1)],arra
Y[i]
i = 2 * (i + 1)
} else
{
arra
Y[i],arra
Y[i]
i = 2*(i+
1) - 1
}
} else
{
break
}
}
return arra
Y[l]
}
func heap_sort(array []
int) {
l := len(array)
for i := 2; i <= l; i++
{
create_heap(arra
Y[:i])
}
for j := 0; j < l; j++
{
pop_heap(arra
Y[: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 := arra
Y[p]
for h < t
{
for h < t && v < arra
Y[t]
{
t--
}
if h < t
{
arra
Y[p] = arra
Y[t]
p = t
h++
}
for h < t && v > arra
Y[h]
{
h++
}
if h < t
{
arra
Y[p] = arra
Y[h]
p = h
t--
}
}
arra
Y[p] = v
fmt.Println(array)
quick_sort(arra
Y[:p])
quick_sort(arra
Y[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,请注明来意。