例如,我目前需要实现的内容称为提交历史记录。这要求我使用每种方法都比O(n)更好的数据结构,并且有人告诉我使用
HashMap<studentId, TreeMap<Date, studentScore>>
自,
以来getBestgrade方法:在o(1)中查找学生的所有提交,然后在o(n)中找到最佳提交(您可以通过缓存最佳分数进行改进)。
所以我的问题是,我该如何使用缓存作为getBestgrade?我在想的是,首先要为树木图上一堂课,然后添加放置,删除和getBestgrade的方法。比我只是在另一堂课中称呼它。
另外,缓存的使用如何降低时间复杂性(big-o)?
请帮助...谢谢
它称为回忆方法(技术)。在Java 8中,此问题有新功能,这是链接。这取决于重复您缓存旧数据的操作的频率。当然,您应该管理缓存大小。它可能会为您提供一些优势,但是它可能会杀死您的记忆。这是一个例子。
顺便说一句,这是存储数据的好方法。Acess将带有给定的学生和日期键。
HashMap<studentId, TreeMap<Date, studentScore>>