Golang程序 使用泡沫排序对数组进行排序

Golang程序 使用泡沫排序对数组进行排序

定义 :泡沫排序是最简单的排序算法,如果相邻元素的顺序不对,则重复交换它们。

例子

输入 arr = [7, 5, 1, 6, 3] 。

  • 第1次 迭代 => 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]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程