假设列表 L 包含 n 已知的数字 范围[0,2 n ]。设计一种排序 L 的算法 在线性时间。
我不太清楚如何解决这个问题。我相信基数排序是O( dn )。
答案 0 :(得分:0)
看起来像家庭作业。在一些伪代码中有关此算法的内容:
range_t range_t::without_front(n) const
2n
,存储x
flag[x] = true
为真,则i = 0到2n
打印i
。所有迭代循环都由 O(n)绑定。
答案 1 :(得分:0)
如下所示:
2n
的数组。L
中的每个项目,请增加arr[L_i]
。通过稍微修改步骤3,可以轻松修改此算法以处理L
中的非不同值。