排序算法 - 冒泡排序

概述

冒泡排序是一种排序的算法, 通过连续的左右比较交换位置, 最终形成正序或倒序, 其思想就是像冒泡泡一样, 通过不断的上浮, 最终浮出水面

图示

 

代码

假设场景是正序, 数组中有n个元素 . 主要思路就是按顺序从前到后两个元素依次比较, 那么大的就往后冒一趟比较就已经完成, 最坏的情况下总计需要比较n-1趟, 最好的情况下需要比较一趟即可完成排序 . 

func main() {
	arr := [6]int{3,82,44,100,33,99}
    bubbleSort(&arr)
	fmt.Println(arr)
}

func bubbleSort(arr *[6]int) {
	var temp int
	exchange := false
    for j := 0; j < len(arr) - 1; j++ {
	  for i := 0; i < len(arr) - 1 - j; i++ {
		if arr[i] > arr[i+1] {
			exchange = true
			temp = arr[i]
			arr[i] = arr[i+1]
			arr[i+1] = temp
		  }
		}
	  if !exchange {
        break
	  }
	}
}

 

时间复杂度

由于使用了双重for循环, 因此简化后的时间复杂度为O(n²) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值