美文网首页排序算法(python)
python实现计数排序(CountSort)

python实现计数排序(CountSort)

作者: 阿旭123 | 来源:发表于2020-12-09 12:03 被阅读0次

python实现【计数排序】(CountSort)

算法原理及介绍

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

算法过程描述

  1. 找出待排序的数组中最大和最小的元素;

  2. 统计数组中每个值为i的元素出现的次数,存入count_nums数组的第i项;

  3. 将count_nums数组中从左向右每一个计数不为0的值依次填充进最终的res排序数组中。

算法排序图解如下

计数排序.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

如果喜欢作者,欢迎点赞、收藏及关注,谢谢!
点击下面相应的链接即可查看各个算法的详细介绍及python实现方法

  1. 冒泡排序(BubbleSort)
  2. 选择排序(SelectionSort)
  3. 插入排序(InsertSort)
  4. 归并排序(MergeSort)
  5. 快速排序(QuickSort)
  6. 堆排序(Heap Sort)
  7. 计数排序(Count Sort)
  8. 桶排序(Bucket Sort)
  9. 基数排序(Radix Sort)
  10. 希尔排序(Shell Sort)

相关文章

  • python实现计数排序(CountSort)

    python实现【计数排序】(CountSort) 算法原理及介绍 计数排序不是基于比较的排序算法,其核心在于将输...

  • leetcode-Array篇easy难度之数组指定顺序排序

    关键词 计数排序,指定顺序排序,TreeMap,countsort计数排序讲解 https://www.cnblo...

  • 排序算法之8:计数排序 CountSort

    基本思想是,用待排序的数作为计数数组的下标,统计每个数字的个数。然后依次输出即可得到有序序列。

  • 排序

    排序 快速排序 归并排序 计数排序 Python实现 理解 详解 稳定:如果a原本在b前面,而a=b,排序之后a仍...

  • Python实现计数排序

    计数排序 计数排序是一个非基于比较的排序算法,优势在于在对一定范围内的整数排序时,快于基于比较的排序算法。 算法思...

  • python实现桶排序(BucketSort)

    python实现【桶排序】(BucketSort) 算法原理及介绍 桶排序是计数排序的升级版。它利用了函数的映射关...

  • 排序算法详细代码实现

    算法分类 算法时间复杂度 选择排序 插入排序 C++实现 Python实现 冒泡排序 Python实现 归并排序 ...

  • 排序算法Java实现

    本文会通过Java语言实现:冒泡排序,插入排序,选择排序,归并排序,快速排序,桶排序,计数排序,基数排序,希尔排序...

  • 基本排序算法的Python实现

    本篇主要实现九(八)大排序算法,分别是冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序,计数排序...

  • 算法-排序算法总结

    排序类型总结 1 排序算法基础实现 2 排序算法应用 2.1 基础排序 2.2 计数排序应用 2.3 快排应用 2...

网友评论

    本文标题:python实现计数排序(CountSort)

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