美文网首页
go语言实现排序算法

go语言实现排序算法

作者: 洛奇lodge | 来源:发表于2019-01-13 12:48 被阅读0次

    冒泡排序算法

    它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来
    最优时间复杂度O(N)
    最坏时间复杂度O(N^2)

    • 代码实现
    // 冒泡排序算法
    func sort1(ls []int) {
        n := len(ls)
        for i:=0; i<n; i++ {
            for j:=0; j<(n-i-1); j++ {
                if ls[j] > ls[j+1] {
                    ls[j], ls[j+1] = ls[j+1], ls[j]
                }
            }
        }
    }
    

    插入排序算法

    从第二个元素开始,进行与前面元素比较(末尾开始逐个比较),进行排序,
    最优时间复杂度:O(n)
    最坏时间复杂度:O(n^2)

    • 代码实现
    // 插入排序算法
    func sort2(ls []int) {
        n := len(ls)
        for i:=1; i<n; i++ {
            for j:=i; j>0; j-- {
                if ls[j] < ls[j-1] {
                    ls[j], ls[j-1] = ls[j-1], ls[j]
                }
            }
        }
    }
    

    选择排序算法

    选择排序算法: 找到最大或最小 放在最右侧或左侧,以此类推
    最优时间复杂度O(N^2)
    最坏时间复杂度O(N^2)

    • 代码实现
    // 选择排序算法
    func sort3(ls []int) {
        n := len(ls)
        var min int
        for i:=0; i<n; i++ {
            min = i
            for j:=i; j<n; j++ {
                if ls[j] < ls[min]{
                    min = j
                }
            }
            ls[i], ls[min] = ls[min], ls[i]
        }
    }
    

    相关文章

      网友评论

          本文标题:go语言实现排序算法

          本文链接:https://www.haomeiwen.com/subject/meoqdqtx.html