选择排序-golang实现 | JianLinker Blog

选择排序-golang实现

描述

选择排序的核心就是遍历数组,每次遍历都将当前位置 i 当作最小的数字,然后向后逐一比较,选出最小的数字的位置,与 i 位置所在的数字进行调换。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package main

func SelectionSort(arr []int) []int {
len := len(arr)
var minIndex int

for i := 0; i < len -1; i++ { // 注意是 < len - 1
minIndex = i
for j := i + 1; j < len ; j ++ { // 注意是 < len
if arr[j] < arr[minIndex] {
minIndex = j // 不断往后遍历,找到最小的进行选择替换
}
}
arr[i], arr[minIndex] = arr[minIndex], arr[i]
}
return arr
}

测试

1
2
3
4
5
6
7
8
9
10
11
package selection

import (
"testing"
)

func Test_selectSort(t *testing.T) {
arr := []int{1, 5, 23, 6, 3, 1, 7}
arr = SelectSort(arr)
t.Log(arr)
}
JianLinker wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!