我有 4 组整数,每组包含 30 个项目。每个集合属于一个搜索算法;顺序、二元、跳转和三元搜索。集合中的每个值表示算法在 ArrayList 中查找特定键所花费的迭代次数。 我必须仅使用集合中的数据找出这 4 种算法中最好的、最差的和平均的算法。 (我还有另一组包含键的整数。我也知道 ArrayList 的大小)。
到目前为止我尝试过的: 求每个集合的平均值,并确定平均值最低的集合是最好的算法,平均值最高的集合是最差的。 对于平均算法,我取所有设定平均值的平均值,并确定最接近它的设定平均值是平均算法。
我很困惑,因为在我看来,我使用这些数据寻找最佳、最差和平均算法的方法是不正确的。难道是我做错了什么?如果不是这个我该怎么办?
编辑:
Example:
Set 1: 12525, 6829, 15194, 5212, 6461
Set 2: 15, 14, 15, 14, 13
Set 3: 227, 241, 179, 64, 169
Set 4: 9, 4, 10, 9, 9
keys: 12526, 16830, 15195, 5213, 6462
ArrayList Size: 20972
What I got:
Best Algorithm: Set 4
Worst Algorithm: Set 1
Average Algorithm: Set 3
我不知道预期的输出应该是什么。有人告诉我要自己解决这个问题,但我被困住了。最好、平均和最差取决于他们的搜索速度。
如果没有“良好”指标,就无法回答这个问题,这取决于上下文。如果您可以完全按照提供给您的问题发布问题,我们也许可以提供帮助。
示例:
算法的效率通常通过最坏情况分析来衡量。如果没有任何关于如何定义善良的具体说明,也没有任何上下文,我会默认说最大值小于任何其他集合的最大值的集合是“最佳”。因此,如果我们有一组全是 1 和 100,那么它会被一组全是 99 击败。