八大排序算法 - go语言实现


  • 冒泡排序
func maoPao(list []int)  []int  {
    n := len(list)
    if n <= 1 {
        return list
    }
    flag := true
    for i:=0;i list[j+1] {
                list[j],list[j+1] = list[j+1],list[j]
                flag = false
            }
        }
        if flag {
            break
        }
    }
    return list
}

  • 选择排序
func xuAnZe(list []int)  []int  {
    n := len(list)
    if n <= 1 {
        return list
    }
    for i:=1; i

  • 插入排序
func ChaRu(list []int)  []int  {
    n := len(list)
    if n <= 1 {
        return list
    }
    for i:=1;i=0;j-- {
            if list[j] > temp {
                list[j+1] = list[j]
                list[j] = temp
            } else {
                break
            }
        }
    }
    return list
}

  • 快速排序
func partition(list []int,start,end int)  int  {
    tag := list[end]
    i := start -1
    for j:=start;j

  • 归并排序
func GuiBing(list []int) []int  {
    if len(list) <= 1 {
        return list
    }
    n := len(list)
    mid := n/2
    left := GuiBing(list[0:mid])
    right := GuiBing(list[mid:n])
    result := merge(left,right)
    return result
}

func merge(l1 []int, l2 []int) []int {
    i,j := 0,0
    var result []int
    for i < len(l1) && j < len(l2) {
        if l1[i] < l2[j] {
            result = append(result,l1[i])
            i++
        } else {
            result = append(result,l2[j])
            j++
        }
    }
    if i == len(l1) {
        result = append(result,l2[j:]...)
    }
    if j == len(l2) {
        result = append(result,l1[i:]...)
    }
    return result
}

你可能感兴趣的:(八大排序算法 - go语言实现)