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

  

上一篇:js数组的常用方法


下一篇:Slice的概念