编写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(n2)
程序
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]