美文网首页
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