GoLang实现冒泡排序

本文介绍了如何使用GoLang编程语言实现经典的冒泡排序算法,通过示例代码详细展示了排序过程。
摘要由CSDN通过智能技术生成

func main() {

arr := [...]int{5, 4, 3, 2, 1}
fmt.Println("排序前", arr)	//[5 4 3 2 1]
temp := 0
//第1轮(5会移动到最后1个位置)
for j := 0; j < len(arr) - 1; j++ {
	if arr[j] > arr[j + 1] {
		temp = arr[j]
		arr[j] = arr[j + 1]
		arr[j + 1] = temp
	}
}
fmt.Println("第1轮", arr)	//[4 3 2 1 5]
//第2轮(4会移动到倒数第2个位置、比第1轮多减1是因为5已经确定不需要比较)
for j := 0; j < len(arr) - 1 - 1; j++ {
	if arr[j] > arr[j + 1] {
		temp = arr[j]
		arr[j] = arr[j + 1]
		arr[j + 1] = temp
	}
}
fmt.Println("第2轮", arr)	//[3 2 1 4 5]
//第3轮(3会移动到倒数第3个位置、比第2轮多减1是因为4,5已经确定不需要比较)
for j := 0; j < len(arr) - 1 - 2; j++ {
	if arr[j] > arr[j + 1] {
		temp = arr[j]
		arr[j] = arr[j + 1]
		arr[j + 1] = temp
	}
}
fmt.Println("第3轮", arr)	//[2 1 3 4 5]
//第4轮(2会移动到倒数第34位置、比第3轮多减1是因为3,4,5已经确定不需要比较)
for j := 0; j < len(arr) - 1 - 3; j++ {
	if arr[j] > arr[j + 1] {
		temp = arr[j]
		arr[j] = arr[j + 1]
		arr[j + 1] = temp
	}
}
fmt.Println("第4轮", arr)	//[1 2 3 4 5]
//此时2,3,4,5都已经确定 5个数排序4个数的位置都已经确定所以排序完成 一共比较arr.length-1轮
//完整的代码
for i := 0; i < len(arr) - 1; i++ {
	for j := 0; j < len(arr) - 1 - i; j++ {
		if arr[j] > arr[j + 1] {
			temp = arr[j]
			arr[j] = arr[j + 1]
			arr[j + 1] = temp
		}
	}
}
fmt.Println("排序后", arr)	//[1 2 3 4 5]

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值