用于在Unix系统上存储文件的数据结构

时间:2016-05-01 08:09:51

标签: unix data-structures

我只是使用内置的开放,写入,覆盖文件制作了一个简单的文本编辑器。我使用了安装了tkinter的python。但是,我还想扩展文本编辑器以有效地添加一些新功能,如搜索,替换等。为了提高效率,我需要知道Unix用于在文件中存储数据的数据结构以及计算搜索的时间复杂度。

1 个答案:

答案 0 :(得分:2)

文本文件存储为字节流。根据所使用的编码(ASCII,UTF-8,Unicode等),它可以是每个字符一个或多个字节的固定值,或者在UTF-8和其他一些编码的情况下,可以是不同的字节数每个角色。

最佳搜索算法的最坏情况复杂度为O(n + m),其中n是您要搜索的字符串的长度,m是您要搜索的字符串的长度in。一个很好的例子是Boyer-Moore search algorithm。如果您正在使用的文件大于适合内存的文件,那么您必须担心缓冲等问题,这会增加复杂性,但不会影响搜索效率。你必须要有创意来缓冲输入,这样你就不会错过跨越输入缓冲区边界的字符串。