Прочитайте весь файл один раз и создайте индекс для некоторых точек данных в файле (например, 1000 точек).Каждая запись в индексе может отображать местоположение в файле на N-е число, начиная с этого местоположения.Построив этот индекс, каждый раз, когда вы ищете N-е число, сначала найдите в индексе самую близкую запись, которая сообщает вам самую близкую известную точку в файле, к которой вы можете fseek
.затем выполните поиск, используя fscanf
, чтобы найти значение.Это уменьшает время поиска с ценой использования некоторой памяти для индекса.
запись в индексе может выглядеть так: (смещение файла, число N)
индекс может выглядеть так:смещение файла 1, номер 1) (смещение файла 2, номер 2) ... (смещение файла N, номер N)