选择排序

选择排序

思路:每次选择一个当前未排序的最小元素放到当前未排序的第一个位置上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
func SelectSort(nums []int) []int {
selectSort(nums)
return nums
}

func selectSort(nums []int) {
//存储最小元素对应的下标
var min int
//进行多少趟
for i := 0; i < len(nums)-1; i++ {
min = i
//每趟从哪里开始
j := i + 1
for ; j < len(nums)-1; j++ {
if nums[min] > nums[j] {
min = j
}
}
if min != i {
nums[i], nums[min] = nums[min], nums[i]
}
}
}