Go实现简单快速排序

package main

import "fmt"

func main() {
    l := []int{5,6,3,2,7,9,8,1}
    fmt.Println(l)
    fmt.Println(quickSort(l))
}

func quickSort(list []int) []int {
    l := len(list)
    if l == 0 {
        return list
    }
    mid := list[0]

    l1, l2 := []int{}, []int{}
    for _, v := range list[1:] {
        if v < mid {
            l1 = append(l1,v)
        } else {
            l2 = append(l2,v)
        }
    }
    l1 = quickSort(l1)
    l2 = quickSort(l2)

    l3 := append(l1,mid)
    l3 = append(l3, l2...)
    return l3
}

结果:

[5 6 3 2 7 9 8 1]
[1 2 3 5 6 7 8 9]
发布了158 篇原创文章 · 获赞 119 · 访问量 81万+

猜你喜欢

转载自blog.csdn.net/u013474436/article/details/104018253
今日推荐