![]() |
1
4
@zvrba:您甚至不必对列表进行排序。第二次遍历列表时,只需将平均工作负载较小的所有项目移动到列表末尾(您可以在第一次遍历时保留指向最后一个项目的指针)。顺序并不一定是完美的,它只是在您的最后一步中增加或减少迭代器时发生变化。 最后一步看起来像: 在第二步中,在child2中保留一个指向第一项的指针,该项的工作负载低于平均工作负载(以防止需要一个双链接列表)。
|
![]() |
2
2
我认为你的分析是错误的:
你是怎么到达O(n!)的?
|
![]() |
3
2
您可能想尝试一种完全不同的方法,例如一致性哈希。 请参见此处,以获得对该主题的相对简单的介绍: http://www8.org/w8-papers/2a-webserver/caching/paper2.html
我已经在Erlang中创建了一个一致性哈希的工作实现,如果您愿意,可以对其进行检查: |
![]() |
4
1
您发布的代码的复杂性为O(n^2)。尽管如此,正如malach所观察到的那样,可以在线性时间内完成,其中n是子列表中的项目数。 考虑:内部循环有n次迭代,它被执行 顶多 n次。n=2。 |
![]() |
Dazcii · 如何找到3个嵌套循环的复杂性 6 年前 |
![]() |
Kodean · Java:循环字符串长度时间复杂性 6 年前 |
![]() |
screeb · 依赖于收敛的算法的大O 7 年前 |
![]() |
f1sh3r0 · 从图中确定渐近增长率 7 年前 |
![]() |
user3487554 · 时间复杂性组合 7 年前 |
|
user6217340 · 大O复杂性 7 年前 |
![]() |
Jawwad Rafiq · 对两个相关循环的复杂性感到困惑? 7 年前 |