go 算法之选择排序算法
package main
import (
"fmt"
"strings"
)
//字符串选择排序
//思路:每次选择一个相应的元素,然后将其放到指定的位置
//1. 假定最小的值得索引是i并赋值给min,
//索引i对应的值和后面的索引对应的值依次比较,
//如果索引i对应的值比后面索引对应的值大,则最小的索引minIndex=j
func stringSelectSort(slice []string) []string {
for i := 0; i < len(slice)-1; i++ {
// 里面循环找到最小元素的坐标
minIndex := i
// 前面排序好的,不用管,所以从i+1开始
for j := i + 1; j < len(slice); j++ {
if strings.Compare(slice[minIndex], slice[j]) > 0 {
//赋值
minIndex = j
}
}
//for 循环外交换两个数值【比冒泡交换的次数少】
if i != minIndex {
slice[i], slice[minIndex] = slice[minIndex], slice[i]
}
}
return slice
}
func main() {
value := []string{"z", "a", "b", "c", "o", "p"}
res := stringSelectSort(value)
fmt.Println(res)
}
posted on 2022-01-19 23:00 running-fly 阅读(63) 评论(0) 收藏 举报
浙公网安备 33010602011771号