编写Golang程序以使用冒泡排序对数组进行排序

定义:冒泡排序是最简单的排序算法,通过以错误顺序重复交换相邻元素来工作。

例子

输入arr = [7、5、1、6、3]

  • 一次迭代=> swap(7,5)=> swap(7,1)=> swap(7,6)=> swap(7,3)=> [5,1,6,3,7]

  • 第2次迭代=> [ 1、5、3、6、7 ]

  • 第3迭代=> [ 1、3、5、6、7 ]

  • 4迭代=> [1、3、5、6、7]

  • 5迭代=> [1、3、5、6、7]

解决这个问题的方法

步骤1:将数组从0索引迭代到n-1

步骤2:将数组从第0索引迭代到n-1-i,其中i是上述循环的索引。

步骤3:交换最高元素在数组的起始位置,否则离开。

步骤3:最后,返回数组。

时间复杂度: O(n 2

程序

package main
import "fmt"
func bubbleSort(arr []int) []int{

   for i:=0; i<=len(arr)-1; i++{
      for j:=0; j<len(arr)-1-i; j++{
         if arr[j]> arr[j+1]{
            arr[j], arr[j+1] = arr[j+1], arr[j]
         }
      }
   }
   return arr
}
输出结果
[0 1 2 5 6]
[2 3 4 5 6]
[1 2 3 4 5]