python实现【计数排序】(Count Sort)

简介: python实现【计数排序】(Count Sort)

python实现【计数排序】(Coun Sort)


算法原理及介绍


计数排序不是基于比较的排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中,将数组的索引当做每一个元素,然后统计每个索引即元素出现的次数记录在该所索引位置处。如:nums[i]=j:表示数值i在序列中出现的次数为j。 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。


算法过程描述


  1. 找出待排序的数组中最大和最小的元素;
  2. 统计数组中每个值为i的元素出现的次数,存入count_nums数组的第i项;
  3. 将count_nums数组中从左向右每一个计数不为0的值依次填充进最终的res排序数组中。


算法排序图解如下


20201201152122135.gif


python实现代码


def countSort(arr):
    max_value = max(arr)
    res = []
    count_nums = [0 for i in range(max_value + 1)]
    for num in arr:
        count_nums[num] += 1
    for i in range(len(count)):
        if count_nums[i] != 0:
# 元素i有 count_nums[i]个,添加入最终的排序数组
            res.extend(count_nums[i] * [i])
    return res


相关文章
|
6月前
|
Python
python sort和sorted的区别
在Python中,sort()和sorted()都是用于排序的函数,但它们之间存在一些关键的区别,这些区别主要体现在它们的应用方式、操作对象以及对原始数据的影响上。
|
索引 Python
python中count()函数
python中count()函数
121 1
|
2月前
|
Python
Python sorted() 函数和sort()函数对比分析
Python sorted() 函数和sort()函数对比分析
|
3月前
|
索引 Python
Python中的find()和count()方法详解
Python中的find()和count()方法详解
|
5月前
|
自然语言处理 Python
python技巧:数组排序sort,all方法
python技巧:数组排序sort,all方法
|
6月前
|
算法 Python
Python中不使用sort对列表排序的技术
Python中不使用sort对列表排序的技术
75 1
|
6月前
|
Python
Python中sort和sorted函数用法解析
Python中sort和sorted函数用法解析
68 0
|
Python
Python实现因子分析(附案例实战)
Python实现因子分析(附案例实战)
1633 0
Python实现因子分析(附案例实战)
Python print() 打印两个 list ,实现中间换行
Python print() 打印两个 list ,实现中间换行
|
Python
python之sort,reverse的定义和使用,列表元素最大最小值的求解,列表嵌套的基本使用。
python之sort,reverse的定义和使用,列表元素最大最小值的求解,列表嵌套的基本使用。