// SelectionSort 选择排序 // 思路: // 1. 遍历整个元素集合,将最小值取出追加到一个有序的元组 // 2. 重复遍历剩余元素集合,取出最小值追加到一个有序元组 // 选择排序思维: 从一堆元素中选择几个极端值: 人事选拔 func SelectionSort(data []int) { for i := 0; i < len(data) - 1; i++ { // minIndex 最小值的索引 minIndex := i // 找剩余元素中最小的值的索引 for j := i; j < len(data); j++ { if data[minIndex] > data[j] { minIndex = j } } // 原地交换值,始终保持最小值 data[i], data[minIndex] = data[minIndex], data[i] } }