使用 Radixsort 对数组进行排序

Posted

技术标签:

【中文标题】使用 Radixsort 对数组进行排序【英文标题】:Sorting arrays with Radixsort 【发布时间】:2016-06-08 20:45:03 【问题描述】:

我目前正在尝试了解 Radixsort,因此我有一个简短的问题。

我认为使用 Radixsort 排序非常糟糕的是下面的数组:

“9999...9, 9999...9, 9999...9”

因为 Radixsort 将比较数组中第一个、第二个和第三个数字的每个数字。所以最好为这个数组使用另一种排序算法。我是对的还是有其他数组对使用 Radixsort 排序非常不利?

最好的问候

【问题讨论】:

基数排序不是基于元素之间的比较,所以我不确定你是如何得出结论的。 【参考方案1】:

基数排序的时间成本是 O(nm),其中 n 是元素的数量,m 是元素的复杂度。你是对的,在某些情况下它并不快。对于长整数字符串,m 可以超过 logn,例如,nlogn 将是合并排序的时间成本。

【讨论】:

以上是关于使用 Radixsort 对数组进行排序的主要内容,如果未能解决你的问题,请参考以下文章

小白初识 - 基数排序(RadixSort)

数据结构实验四 Radix Sort And Stack

如何使用分布排序(基数排序等)对字符串进行排序?

RadixSort 算法运行时间

Delphi Radix Sort 支持负整数

基数排序字符串