您的位置:首页 > 编程语言 > Go语言

go实现选择排序

2020-07-07 14:55 176 查看
package main

import (
"fmt"
"math/rand"
"time"
)

func selectSort(data []int) {
size := len(data)
var index int
//外层循环,每次得到 data[i] ~ data[size-1] 之间的最小值,存放在 data[i]
for i := 0; i < size-1; i++ {
index = i
/*内存循环,暂且将data[i]当做 data[i] ~ data[size-1] 之间的最小值
使用index记录这个最小值的标号
依次使用data[index] 和 data[i+1] ~ data[size-1] 之间的所有元素作比较
如果 data[index] > data[j],则 index = j
一趟内存循环执行完,index 中就已经记录了 data[i] ~ data[size-1] 之间最小元素的标号
*/
for j := i + 1; j < size; j++ {
if data[index] > data[j] {
index = j
}
}
//将data[i] 与 data[index] 交换,从而将 data[i] ~ data[size-1] 中的最小值存放在 data[i] 中
data[i], data[index] = data[index], data[i]
}
}

func main() {
rand.Seed(time.Now().UnixNano() / 1000)
arr := [100]int{}
for i := 0; i < 100; i++ {
arr[i] = rand.Intn(1000)
}
fmt.Println(arr)
selectSort(arr[:])
fmt.Println(arr)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: