Go语言 大话数据结构——简单选择排序

知识内容详见《大话数据结构》P384

代码实例:

package main

import (
	"math/rand"
	"time"
	"fmt"
)
/*
思想:先设定第0个元素为最小值,从第0个元素到末尾,找出最小值,交换最小值与第0个元素的位置。
		之后从第1个元素开始,再次执行以上操作。直到倒数第二个元素执行完毕。
*/
func SelecetSort(a []int) {
	n := len(a)
	for i := 0; i < n-1; i++ {
		min := i
		for j := i; j < n; j++ {
			if a[min] > a[j] {
				min = j
			}
		}
		a[i], a[min] = a[min], a[i]
	}
	fmt.Println("通过选择排序之后的切片为:")
	fmt.Println(a)
}
func main() {
	rand.Seed(time.Now().UnixNano())
	arr := make([]int, 0)
	for i := 0; i < 10; i++ {
		arr = append(arr, rand.Intn(1000))
	}
	fmt.Println("排序之前的切片为:")
	fmt.Println(arr)
	SelecetSort(arr)

}

猜你喜欢

转载自blog.csdn.net/weixin_42117918/article/details/82228193
今日推荐