編寫一個使用氣泡排序演算法對陣列進行排序的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]
廣告