选择排序算法
-
从未排序数据中选择最大或者最小的值和当前值交换 O(n^2).
-
选择一个数当最小值或者最大值,进行比较然后交换
-
循环向后查进行
-
package main import "fmt" /** 查找最大值 */ func SelectMax(arr []int) int { length := len(arr) if length <= 1 { return arr[0] } max := arr[0] for i := 1; i < len(arr); i++ { if arr[i] > max { max = arr[i] } } return max } func SelectSort(arr []int) []int { length := len(arr) if length <= 1 { return arr } for i := 0; i < length; i++ { min := i for j := i + 1; j < length; j++ { if arr[min] > arr[j] { min = j } } if min != i { arr[i], arr[min] = arr[min], arr[i] } } return arr } func main() { arr := []int{1, 3, 12, 12, 3, 6, 90, 33, 11, 34} max := SelectMax(arr) sort := SelectSort(arr) fmt.Println(max) fmt.Println(sort) /** 90 [1 3 3 6 11 12 12 33 34 90] */ }