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


相关文章
|
1月前
|
Python
python sort和sorted的区别
在Python中,sort()和sorted()都是用于排序的函数,但它们之间存在一些关键的区别,这些区别主要体现在它们的应用方式、操作对象以及对原始数据的影响上。
|
6月前
|
索引 Python
python中count()函数
python中count()函数
|
1月前
|
Python
Python中sort和sorted函数用法解析
Python中sort和sorted函数用法解析
19 0
|
6月前
|
Python
python之sort,reverse的定义和使用,列表元素最大最小值的求解,列表嵌套的基本使用。
python之sort,reverse的定义和使用,列表元素最大最小值的求解,列表嵌套的基本使用。
Python print() 打印两个 list ,实现中间换行
Python print() 打印两个 list ,实现中间换行
|
Python
Python实现因子分析(附案例实战)
Python实现因子分析(附案例实战)
1061 0
Python实现因子分析(附案例实战)
|
10月前
|
Linux Python
使用grep -o和python(.count)统计文件中某个字符串出现的次数
使用grep -o和python(.count)统计文件中某个字符串出现的次数
|
数据采集 开发框架 算法
python学习之路- sort
开发者学堂课程,了解Python语言的基本特性、编程环境的搭建、语法基础、算法基础等,了解Python的基本数据结构,对Python的网络编程与Web开发技术具备初步的知识,了解常用开发框架的基本特性,以及Python爬虫的基础知识。 课程地址:https://developer.aliyun.com/learning/course/601/detail/8736
python学习之路- sort
|
JSON 区块链 数据格式
Python实现一个简单的区块链
本文介绍如何用Python实现一个简单的区块链。
486 0
|
存储 数据安全/隐私保护 计算机视觉
python 实现pacs功能 推送下拉影像
python 实现dcmtk关联pacs功能 推送下拉影像
229 0
python 实现pacs功能 推送下拉影像