冒泡排序相比学过后端语言的同学都了解过,今天给大家讲一讲Go语言中是如何实现冒泡排序呢. 其实不论任何语言,冒泡排序的思想是不会改变的,如何我们能够充分认识到冒泡排序是怎样一个的排序,相信转换成代码也不是难事.
好啦 废话少说,我们开始!
首先, 我们要认识一下什么叫做冒泡排序,
冒泡排 序就是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。
冒泡排 序就是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。
其次, 我们可以先推导一轮的最大值排序
代码:
1.第一轮推导,确认了最大值
冒泡排序前 arr = [24 ,69, 80, 57, 13]
第一轮冒泡排序后 arr = [24 ,69, 57, 13, 80]
1.第二轮推导,确认第二个最大值
第一轮冒泡排序后 arr = [24 ,69, 57, 13, 80]
第二轮冒泡排序后 **arr = [24 ,57 ,13, 69, 80]**
其实通过以上推导,我们不难发现,每推导一次,就能得到一个最大值放置数组的最后边,于是我们便可以写出结论,外部for循环的次数就等于数组的长度减1
同时数组的内部也要循环遍历找出最大值放置数组后面,其循环次数也是数组长度减1
func bobble(arr *[6]int) {
temp := 0 // 定义临时变量,进行数据交换
for j := 0; j < len(arr)-1; j++ {
// 外循环 循环次数
for i := 0; i < len(arr)-1; i++ {
// 内循环 数组遍历
if arr[i] > arr[i+1] {
temp = arr[i]
arr[i] = arr[i+1]
arr[i+1] = temp
}
}
}
}