go语言实现选择排序

.container .card .information strong · · 387 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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
}

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


有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:.container .card .information strong

查看原文:go语言实现选择排序

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

387 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传