package sort
//计数排序
//计数排序
func CountingSort(arr []int64) {
//1.寻找最大值
max := arr[0]
base := arr[0]
for _,item := range arr {
if item > max {
max = item
}
if item < base {
base = item
}
}
//2.建桶
bucketList := make([]int64, max-base+1,max-base+1)
for _,item := range arr {
bucketList[item]++
}
//3.遍历
index := 0
for key,item := range bucketList {
if item > 0 {
var c int64
for ;c < item;c++ {
arr[index] = base+int64(key)
index++
}
}
}
}
排序算法-计数排序
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 题外话计数排序时间性能比之前的排序算法高,在实际中应用较多,只需要O(n)时间即可完成排序。计数排序思想比较巧妙,...