有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

n个元素的java时间复杂性

我有两个问题,我一直想问。我对搜索的工作原理有一个概念,但不完全确定。我写下了我所知道的,但我不认为它似乎100%准确或回答了这个问题

1)第一次在包含n个元素的数据集上运行算法A时;它比 算法B。第二次在包含n个元素的数据集上运行算法A时;它比 算法B.解释这是如何可能的。给出算法A和算法B的示例

2)如果两者都有n个节点,并且从最小到最大排序,查找速度会更快吗 排序链表中的最大值或最低级别BST?解释一下

这就是我对上述问题的看法。如果我错了或遗漏了任何关键信息,请纠正我

1)算法A是线性搜索(检查每个元素是否匹配)。算法B在使用二进制搜索之前对数据进行排序并存储在内存中。对于每个后续搜索,算法B都会更快,因为二进制搜索通常比线性搜索快

2)如果列表从最小值到最大值排序,如果进一步使用尾部指针,它将变为O(1)。原因是max元素是链接列表中的最后一个元素。因此,你必须穿过尾部(O(n))

对不起,如果我违反了任何规则,但我要问很长时间后

任何帮助都将不胜感激。多谢各位


共 (1) 个答案

  1. # 1 楼答案

    我认为你的猜测是正确的。为了完整起见,您可以为二进制搜索添加O(log(n))