linked-list - 根据搜索频率在链表中搜索
问题描述
假设内存中有一个未排序的链表。建议一个合适的搜索过程,其中经常搜索的元素会以较少的比较次数找到。(如果您愿意,可以修改数据结构。)
这该怎么做?
解决方案
实现这一目标的一种方法是
- 在未排序的链表中搜索需要的元素(线性搜索)
- 如果找到,则从那里删除该节点并使其成为头节点(删除和插入操作)
- 所以下次需要较少的比较来找到该节点。
- 所有已经搜索过的元素都将出现在头部附近,因此它的检索将是有效的。
推荐阅读
- python - 如何将嵌入矩阵转换为torch.Tensor
- c# - 如何相对添加tessdata?或使用参考中的文件夹?
- python - 遍历数据框列并确定哪些是数字的
- java - 如果调用 Subscription.request 时 Publisher 无法生成数据怎么办?
- javascript - 将多个字符串插入一个字符串而不调整索引更改
- c++ - 模板函数调用
- javascript - GraphQL 错误:预期未定义为 GraphQL 类型
- python - faulthandler.enable() 在用于生产的库中?
- databricks - Databricks Delta Lake `mergeSchema` 选项如何处理不同的数据类型?
- python - 文件资源管理器在 Tkinter Python 程序中自动打开