go排序-选择排序

package main

import "fmt"

func main() {
	var list  = []int{-1,2,33,345,546,6,2,5,4}
	selectSort(list)
	fmt.Println(list)
}

//选择排序是:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
func selectSort(list []int ){
	n := len(list)

	for i:=0;i<n-1;i++{
		minIndex := i // 最小的索引
		for j:=i+1;j<n;j++{  // 从之前已排序的下一个找最小的 和已排序的最后一个交换
			if list[j] < list[minIndex] {
				minIndex = j
			}
		}
		if minIndex != i {
			list[minIndex],list[i] = list[i],list[minIndex]
		}

	}

}

  

 

posted @ 2021-07-21 14:07  brady-wang  阅读(69)  评论(0编辑  收藏  举报