簡単なクイックソートを行きます

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 ビュー810 000 +

おすすめ

転載: blog.csdn.net/u013474436/article/details/104018253