美文网首页
Go算法——计数排序

Go算法——计数排序

作者: ProgrammingGuy | 来源:发表于2020-02-13 17:32 被阅读0次
    package main
    
    import (
        "fmt"
    )
    
    func countingSort(array []int, k int) {
        b, t := make([]int, len(array)), make([]int, k)
        for i := 0; i < len(array); i++ {
            t[array[i]]++
        }
        for i := 1; i < k; i++ {
            t[i] += t[i-1]
        }
        for j := len(array) - 1; j >= 0; j-- {
            b[t[array[j]]-1] = array[j]
            t[array[j]]--
        }
        for i := 0; i < len(array); i++ {
            array[i] = b[i]
        }
    }
    
    func main() {
        arr := []int{16, 4, 10, 14, 7, 9, 3, 2, 8, 1}
        fmt.Println(arr)
        countingSort(arr, 17)
        fmt.Println(arr)
    }
    
    image.png

    相关文章

      网友评论

          本文标题:Go算法——计数排序

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