0
点赞
收藏
分享

微信扫一扫

golang冒泡排序

冒泡排序原理:

第一轮迭代:从第一个数开始,依次比较相邻的两个数,如果前面一个数比后面一个数大,那么交换位置,直到处理到最后一个数,最后的这个数是最大的。

第二轮迭代:因为最后一个数已经是最大了,现在重复第一轮迭代的操作,但是只处理到倒数第二个数。

第三轮迭代:因为最后一个数已经是最大了,最后第二个数是次大的,现在重复第一轮迭代的操作,但是只处理到倒数第三个数。

golang冒泡排序_冒泡排序

上图引用网络图片

下面是冒泡排序代码:

package main

import (
"fmt"
)

func main() {
var nums = []int{4, 2, 10, 3, 188, 43, 19, 1, 80, 24, 30}
BubbleSort(nums)
fmt.Println(nums)
}
func BubbleSort(list []int) {
listLen := len(list)
loop :=0
for i := listLen - 1; i > 1; i-- {
didSwap:=false
for j := 0; j < i; j++ {
if list[j] >= list[j+1] {
list[j], list[j+1] = list[j+1], list[j]
didSwap=true
}
loop++
}
if !didSwap{
fmt.Println(loop) //打印循环次数
return
}
}
}

golang冒泡排序_迭代_02

这上面这个结果来看,冒泡排序需要52次循环来做11个数的排序。冒泡排序是效率较低的排序算法,可以说是最慢的排序算法了,我们只需知道它是什么,在实际工作上切勿使用如此之慢的排序算法!


举报

相关推荐

0 条评论