Go-选择排序

// 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]
	}
}

  

posted @ 2021-02-21 18:21  梦_鱼  阅读(33)  评论(0编辑  收藏  举报