这是我最后一个成绩单。我给出了一个我认为很好的答案。我们只是在考试中获得分数,而不是我们是否有正确的问题。希望社区能够为此提供指导,我对于答案的兴趣并不在于什么被测试,而是在哪里我可以更多地了解它,并在下次考试前进行一些练习。乍一看,它看起来像一个时间复杂性问题,但是当它开始讨论映射函数和预先排序数据时,我不知道如何处理。 那么你会如何回答?映射函数以减少时间复杂度?博士学位项目
这就是:
给定一组物品的X = {X1,X2,...,XN}从一些领域ž画,你的任务是找到如果查询项目●在ž发生在集合中。为简单起见,您可以假设每个项目在X中只出现一次,并且需要花费O(l)的时间量来比较Z中的任意两个项目。
(a)编写一个算法的伪代码,十,算法的最坏情况时间复杂度是多少? (b)如果l非常大(例如,如果X的每个元素都是一个长视频),那么就需要有效的算法来检查X中是否有q \。假设你有权访问k个函数h_i:Z-> {1,2,...,m},它们将Z的一个元素均匀地映射到1和m之间的一个数字,并且让l和m> n。 为使用函数h_1 ... h_k检查X中是否存在q \的算法编写伪代码。请注意,您可以预处理数据。算法的最坏情况时间复杂度是多少?
请在您的伪代码中明确输入,输出和假设。
X的本质是什么?它是一个列表,一个数组?你如何访问元素,时间复杂度是多少? – phant0m