关于golang:go语言实现选择排序

go语言实现抉择排序,为什么叫抉择排序呢?从数组元素中第一个元素开始array[0],和其余元素相比,而后找出第一次元素最小的那个索引,将最小的元素排序到元素第一个地位

package main;

import "fmt";

func main() {
    array := []int{5,4,3,21}
    res := selectSort(array)
    fmt.Println(res)
}

func selectSort(array []int) []int  {
    n := len(array)
    for i:=0;i<n;i++ {
        index := i // 假如元素最小
        for j:=i+1;j<n-1;j++ {
            if (array[index] > array[j+1]) {
                index = j+1 // 记录元素最小的索引
            }
        }
        // 将最小的元素排序到右边
        array[i],array[index] = array[index],array[i]
        //i++,曾经将最小的元素排序到最右边,而后在找第二大的元素
    }
    return array
}

原来老是去被代码,导致一段时间就遗记,其实没有了解算法的核心思想。这样必定是不行的,就像冒泡,每次冒泡都将最大的冒到最初。
就像抉择,在为排序的数据中抉择最小的那个,而后和已排序中的元素替换。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理