Go 语言 实现冒泡排序

2024-07-29 16:27:34 浏览数 (1)

冒泡排序相比学过后端语言的同学都了解过,今天给大家讲一讲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

代码语言:javascript复制
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
      }
    }
  }
}

0 人点赞