时间复杂度:O(n^2)
- 最好:O(n^2)
 - 最坏:O(n^2)
 空间复杂度:O(1)
- 只需要一个额外空间用于数据交换
 
原理
选择排序(Selection Sort)是从待排序的序列中选出最大值(或最小值),交换该元素与待排序序列头部元素,直到所有待排序的数据元素排序完毕为止。
实现
- 第一趟从 len 个元素的数据序列中选出关键字最小(或最大)的元素并放到最前(或最后)位置。
 - 下一趟再从 len-1 个元素中选出最小(大)的元素并放到次前(后)位置。
 以此类推,经过 len-1 趟完成排序。
// 选择排序,降序排序func SelectSort(slice []int) []int {if len(slice) < 2 {return slice}for i := 0; i < len(slice)-1; i++ {for j := 1 + i; j < len(slice); j++ {if slice[i] < slice[j] {slice[i], slice[j] = slice[j], slice[i]}}}return slice}
