В программе на C мне нужно найти точную строку в обычном файле (я использую Linux). Как мне сделать, чтобы искать?Поиск строки в нормальном файле
Мое первое предположение состояло в перемещении каждой строки файла в ОЗУ (через fgets()), и после каждого шага проверьте, была ли эта строка правильной строкой. Если это не так, цикл перезвонит fgets() и проверит строки до EOF.
Но что происходит с файлом с 150 миллионами строк? Случается, что такой последовательный поиск кажется неэффективным вообще.
Однако я думал о каком-то двоичном поиске, используя сортировку вставки, чтобы сортировать строки, которые моя программа добавляет в файл (она добавляет одну строку каждые 3 секунды сразу же после проверки того, что эта строка не работает 't появляется в файле строк). Но потом я сдался, потому что мне сначала нужно было переместить строки в ОЗУ, используя то же самое время, которое я использовал бы для последовательного поиска. Таким образом, я выбрал последовательный поиск.
Действительно ли это предположение? Или есть лучший способ? Я очень на это надеюсь.
В качестве побочного примечания, не уверен, что вы думаете, читая все строки, выполняя сортировку и ТОГДА их хранить, чтобы улучшить производительность, просто прочитав все строки <. < – Blindy