Более быстрый способ заполнения файла после прочтения каждой строки другого файла - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть файл Excel, и мне нужно пройти через каждую строку, всегда получить столбцы, скажем, 2,3, а затем в другом файле совы найти соответствующий объект (который я получаю из столбца 2 каждой строки файла Excel)и заполните его, и повторите всю задачу для всех строк файла Excel. Так как оба файла велики, выполняя тривиальный путь: просмотрите каждую строку файла Excel, затем просмотрите каждую сущность файла owl, найдите правильную сущность и затем заполнение займет много времени.

Есть ли другой метод, который я должен попробовать, который имеет меньшую сложность?

Любая помощь высоко ценится.

PS: Я студент CS и сделал DSA вмой предыдущий сем. Теперь я понимаю практическую важность времени выполнения алгоритмов.

Для работы с таблицей Excel я использую openpyxl, но ненужную информацию.

1 Ответ

0 голосов
/ 05 ноября 2019

В зависимости от 'большого' вы можете избежать больших накладных расходов на файловый ввод-вывод, сохранив один из файлов (только те части, которые вам нужны) в ОЗУ, и затем повторить другой файл только один раз.

Komplexity остается равным O (n * m)

Вы можете уменьшить сложность (если все еще необходимо), сохраняя данные файла, который вы храните в оперативной памяти, в HashMap, который имеет доступсложность O (1) (в большинстве случаев)

Сложность составляет O (m) , где m - размер файла, который не хранится в HashMap (в ОЗУ).

Если «большой» означает, что даже данные из файла меньшего размера не помещаются в ОЗУ, вы можете использовать тот же подход, просто сделав это с кусками размера, которые умещаются в вашей ОЗУ.

...