从文件中获取亚线性时间的输入

Taking Input in sub-linear time from a file

本文关键字:时间 输入 线性 文件 获取      更新时间:2023-10-16

我有一个节点列表(字符串,值)。我可以在亚线性时间内扫描它吗?此外,我需要处理它,以便可以在亚线性时间内完成对字符串的每个搜索查询。如果次线性意味着小于 O(n) 或者它可以是 O(n),任何人都可以更具体地说明吗?我正在使用CPP

扫描通常意味着"读取每个项目(以某些通常是预定义的顺序)"。如果读取每个项目,则至少执行线性数量的读取下一个项目操作。我们假设操作需要一些时间,通常是恒定的,有时等于或大于某个最小时间,因此执行扫描需要一些时间,至少与处理的项目数(列表长度)成正比。

所以答案是否定的,你不能在亚线性时间内做到这一点——除非你的机器可以动态复制自己并将数据分成每个后代机器处理的部分。即便如此,尽管数据量很大,拆分也必须在恒定的时间内完成,否则拆分开销很容易吞噬所有节省。