编程语言
首页 > 编程语言> > go 算法之选择排序算法

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)
}

  

标签:minIndex,slice,string,索引,算法,go,排序,对应
来源: https://www.cnblogs.com/zxqblogrecord/p/15824555.html