我需要帮助,在决定与搜索算法用于搜索大文件。这就是我在做的事情。假设文件由时间范围t1到t2组成。(t2>t1)
我需要得到以下文件的偏移量:
朴素版本是在当前时间为t3时遍历整个文件并返回搜索,从返回查找开始,当前时间为t4,返回第二次搜索。
现在假设文件是100 get,我需要迭代,而文件只是为了得到2秒的周期。然后,这个逻辑变得过于CPU和文件系统昂贵。寻找更好的解决方案。使用中的语言是C.行目前是固定大小的,但是我想展望未来,并处理一些不使用固定大小长度的算法。
发布于 2010-07-08 17:46:29
如果文件中的时间都已排序,则可以使用二进制搜索。如果您的文件中的记录是固定宽度的,则更好,但是您可能可以使用它,即使它们不是,通过一些工作。
发布于 2010-07-08 17:53:16
由于值的宽度是固定的,所以像二进制搜索或插值搜索之类的东西听起来是最好的选择。另外,如果您计划使用那些大小类(100 of )中的文件,您应该考虑使用fgetpos/fsetpos,因为using的文件大小限制。
https://stackoverflow.com/questions/3206395
复制相似问题