冒泡排序是一种排序算法,它的工作原理是将顺序错误的元素进行交换。在多次传递中,它检查相邻的元素是否处于正确的顺序(增加)。
冒泡排序的时间复杂度是O(n^2),因为它需要两个嵌套循环来检查相邻元素。
例如,让我们来看看下面这个未经排序的数组–
22 15 11 45 13
冒泡排序算法首先遍历整个数组,然后在另一个循环中检查相邻的元素是否有顺序。
因此,排序后的元素将是。
11 13 15 22 45
算法
- 在两个嵌套的循环中,将每个元素与相邻的元素进行比较。
-
如果该元素小于前一个元素,则将其交换。
-
打印该数组。
例子
实现冒泡排序算法
package main
import "fmt"
func BubbleSort(array[] int)[]int {
for i:=0; i< len(array)-1; i++ {
for j:=0; j < len(array)-i-1; j++ {
if (array[j] > array[j+1]) {
array[j], array[j+1] = array[j+1], array[j]
}
}
}
return array
}
func main() {
array:= []int{11, 14, 3, 8, 18, 17, 43};
fmt.Println(BubbleSort(array))
}
输出
运行上述代码将对给定的未经排序的数组进行排序,并打印输出如下&miuns。
3 8 11 14 18 17 43