Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 以logn时间读取长度为n的文件_File_Time Complexity_Read Write - Fatal编程技术网

File 以logn时间读取长度为n的文件

File 以logn时间读取长度为n的文件,file,time-complexity,read-write,File,Time Complexity,Read Write,在任何编程语言中对文件执行任何(读/写)操作时,应导航文件的确切位置,然后使用读/写模式处理。考虑一个强< n>强>行大小的文件,它需要一个循环读取每个行,导致循环重复 n倍。而读取文件的复杂性是O(N) 是否有任何算法可以读取log(N)time中的'N'行文件 这完全取决于文件系统的功能;例如,在FAT32文件系统中,形成文件的磁盘扇区数存储为一个链表,因此甚至需要线性时间(尽管常数很小)才能到达文件末尾 除此之外,这取决于我们是否提前知道线路的长度。否则,在一般情况下是不可能的:文件中未读

在任何编程语言中对文件执行任何(读/写)操作时,应导航文件的确切位置,然后使用读/写模式处理。考虑一个强< n>强>行大小的文件,它需要一个循环读取每个行,导致循环重复<强> n倍。而读取文件的复杂性是O(N)


是否有任何算法可以读取log(N)time中的'N'行文件

这完全取决于文件系统的功能;例如,在FAT32文件系统中,形成文件的磁盘扇区数存储为一个链表,因此甚至需要线性时间(尽管常数很小)才能到达文件末尾

除此之外,这取决于我们是否提前知道线路的长度。否则,在一般情况下是不可能的:文件中未读取的每个位置都可能包含换行符或不包含换行符


另一方面,例如,如果所有行的长度都是预先知道的,并且文件系统允许在次线性时间访问文件中的任意位置,那么整个问题也可以在该次线性时间内解决。

提供的解决方案似乎是可行的。但在开发人员不知道文件系统体系结构和任意位置的一般情况下,是否有一种通用方法来解决此问题?@Dinesh否。如果有次线性解决方案,请查看我们未读取的任何位置,并想象两个输入:一个输入有换行符,另一个输入有规则字符。我们找到的任何一个答案都不可能同时适用于这两种输入。