您好,登錄后才能下訂單哦!
原理
簡單選擇排序應該是最直觀最容易理解的排序方法了。
直接從頭開始一個一個去比,找出最小的放到最左邊。再依次完成其他位的排序。
時間復雜度
比較次數固定為O(n^2),數據交換次數是0~n-1次
因為會交換不同位置相同數值的數據,所以選擇排序并不穩定
代碼實現
package main
import (
"fmt"
)
func main() {
var length = 10
var mm = make(map[int]int, length)
var o []int
// 先準備一個順序隨機的數(qie)組(pian)
for i := 0; i < length; i++ {
mm[i] = i
}
for k, _ := range mm {
o = append(o, k)
}
fmt.Println(o)
// 兩次循環找到最小的排前面
for i := 0; i < length; i++ {
min := i
for j := length - 1; j >= i; j-- {
if o[j] < o[min] {
min = j
}
}
// 當前就是最小值時就不交換了
if min == i {
continue
}
// 順序交換
o[i], o[min] = o[min], o[i]
fmt.Println(o)
}
}
運行結果
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。