实现原理
找到数组中第一小的元素,和第一元素交换位置。再在剩余的元素中找到第二小的元素和第二个元素交换位置。以此类推,直到整个数组排序。
效率分析
对于每一次排序都需和未排序的元素进行比较一遍。所以需要比较N(N - 1)/2次。每个元素最后都需要进行交换一次。共需交换N次。
时间复杂度为 N
代码实现
func sort(a []int) {N := len(a)for i := 0; i < N; i++ {min := ifor j := i + 1; j < N; j++ {if less(a[j], a[min]) {min = j}}exch(a, i, min)}}
