基数排序算法
发布者:admin 发表于:443天前 阅读数:823 评论:0

基数排序算法

算法描述:基数排序类似计数排序,需要额外的空间来记录对应的基数内的数据

额外的空间是有序的,最终时间复杂度O(nlogrm),r是基数,r^m=n.当给定

特定的范围,计数排序又可以叫桶排序,当以10进制为基数时就是简单的桶排序

算法步骤

从个位开始排序,从低到高进行递推

比较过程中如果遇到高位相同时,顺序不变

算法分两类

低位排序LSD

高位排序MSD

package sort

import "fmt"

func main() {
    var arr [3][]int
    myarr := []int{1, 2, 3, 1, 1, 2, 2, 2, 2, 2, 3}
    for i := 0; i < len(myarr); i++ {
        arr[myarr[i]-1] = append(arr[myarr[i]-1], myarr[i])
    }
    fmt.Println(arr)
}