1. 程式人生 > >氣泡排序(golang實現)

氣泡排序(golang實現)

氣泡排序(Bubble Sort),是一種電腦科學領域的較簡單的排序演算法。 它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。 走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。

在這裡插入圖片描述

package main

import "fmt"

func main() {
	arr := []int{9, 4, 5, 1, 22, 8, 4, 7, 0, 2}
	bubbleSort(arr, len(arr))
	fmt.Println(arr)
}

/**
氣泡排序:第一次迴圈,確定最後一位為最大值;第二次迴圈,確定倒數第二位為倒數第二大的值;以此類推。。。
時間複雜度 O(n^2)
*/
func bubbleSort(arr []int, len int) {
	if len == 1 {
		return
	}
	for i := 0; i < len-1; i++ {
		if arr[i] > arr[i+1] {
			arr[i], arr[i+1] = arr[i+1], arr[i]
		}
	}
	bubbleSort(arr, len-1)
}