編寫一個使用氣泡排序演算法對陣列進行排序的Go語言程式


定義:氣泡排序是最簡單的排序演算法,它透過重複交換相鄰元素來實現排序,如果元素順序錯誤則進行交換。

示例

輸入 arr = [7, 5, 1, 6, 3]

  • 第一次迭代 => 交換(7, 5) => 交換(7, 1) => 交換(7, 6) => 交換(7, 3) => [5, 1, 6, 3, 7]
  • 第二次迭代 => [1, 5, 3, 6, 7]
  • 第三次迭代 => [1, 3, 5, 6, 7]
  • 第四次迭代 => [1, 3, 5, 6, 7]
  • 第五次迭代 => [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]

更新於:2021年2月4日

497 次檢視

開啟您的職業生涯

完成課程後獲得認證

開始學習
廣告