比较两个数组以查看它们是否具有相同成员的最佳算法是什么?
假设没有重复项,成员可以按任何顺序排列,并且都没有排序。
compare(
[a, b, c, d],
[b, a, d, c]
) ==> true
compare(
[a, b, e],
[a, b, c]
) ==> false
compare(
[a, b, c],
[a, b]
) ==> false
显而易见的答案是:
- 对两个列表进行排序,然后检查每个列表
元素来查看它们是否相同
- 将一个数组中的项目添加到
哈希表,然后迭代
其他数组,检查每个项目
是在哈希中
- nickf的迭代搜索算法
您使用哪一个取决于您是否可以首先对列表进行排序,以及您是否有一个好的哈希算法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)