【问题标题】:What is the difference between american sort and radix sort?美式排序和基数排序有什么区别?
【发布时间】:2018-06-18 17:12:41
【问题描述】:

我遇到了一种称为美国排序的排序算法。我读到它是基数排序的变体。谁能详细说明一下这个排序算法以及与之相关的时间和空间复杂度。

【问题讨论】:

标签: algorithm sorting data-structures time-complexity space-complexity


【解决方案1】:

您指的是American flag sort,一种高效的就地 基数排序变体,可将项目分配到数百个桶中。这是一个分布排序:其中项目从输入分布到多个中间结构(在本例中为桶),然后将其收集并放置在输出上。


基数排序:时间:O(nk),空间:O(n+k),n是键的个数,k是一个数字的最大位数(值)可以有。

美国国旗排序:时间:O(n*k/d),空间:O(k),n 是位数,k 是平均桶大小。


american flag sort optimization阅读更多内容。

阅读Engineering Radix Sort (1993),在论文中对两种算法进行了实验比较。

美国国旗排序的 Java implementation

【讨论】:

猜你喜欢
  • 2011-05-26
  • 2013-06-18
  • 2012-02-24
  • 2010-12-06
  • 1970-01-01
  • 2010-11-08
  • 2015-10-25
  • 1970-01-01
  • 2013-11-11
相关资源
最近更新 更多