This commit is contained in:
krahets 2023-03-23 04:40:39 +08:00
parent 59c877c5f3
commit 2715ce703a

View file

@ -16,9 +16,9 @@ comments: true
观察发现,计数排序名副其实,是通过“统计元素数量”来实现排序的。 观察发现,计数排序名副其实,是通过“统计元素数量”来实现排序的。
![counting_sort_overview](counting_sort.assets/counting_sort_overview.png) ![计数排序流程](counting_sort.assets/counting_sort_overview.png)
<p align="center"> Fig. counting_sort_overview </p> <p align="center"> Fig. 计数排序流程 </p>
=== "Java" === "Java"
@ -450,7 +450,7 @@ $$
## 11.6.4. &nbsp; 局限性 ## 11.6.4. &nbsp; 局限性
看到这里,你也许会觉得计数排序太妙了,咔咔一通操作,时间复杂度就下来了。但实际上与其它算法一样,计数排序也无法摆脱“此消彼长”的宿命,**时间复杂度优化的代价是通用型变差** 看到这里,你也许会觉得计数排序太妙了,咔咔一通操作,时间复杂度就下来了。然而,使用技术排序的前置条件比较苛刻
**计数排序只适用于非负整数**。若想要用在其他类型数据上,则要求该数据必须可以被转化为非负整数,并且不能改变各个元素之间的相对大小关系。例如,对于包含负数的整数数组,可以先给所有数字加上一个常数,将全部数字转化为正数,排序完成后再转换回去即可。 **计数排序只适用于非负整数**。若想要用在其他类型数据上,则要求该数据必须可以被转化为非负整数,并且不能改变各个元素之间的相对大小关系。例如,对于包含负数的整数数组,可以先给所有数字加上一个常数,将全部数字转化为正数,排序完成后再转换回去即可。