[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка большого файла со строками
Страницы: 1, 2, 3
kaww
Цитата (linker @ 2.02.2014 - 15:08)
Подробнее, отсортировать только внутри эти частей? Не катит. Отсортировать внутри частей, потом между частями всё равно получается, что настанет тот момент, когда сортирующаяся часть станет больше чем размер выделенной части.

Прокатит. При слиянии читаем только по строке из каждой из двух сливаемых частей и сравниваем между собой. в результирующий файл записываем меньшую, далее читаем строку из того файла, из которого была только чтозаписанная и т.д.
linker
kaww
Мда, в любом случае это будет ну очень долго и с серьёзным прогибом в I/O. Не знаю, где такая практическая необходимость может понадобится в сфере php.

_____________
Gear Framework
Gear Framework на Github
kaww
linker,
мы же говорим об алгоритме, разумеется, на практике в чистом виде без оптимизаций (как наполнять буфер и периодически записывать на диск) использоваться не будет. Ровно как и решать подобные задачи на php находящийся в здравом уме человек вряд ли станет. А вот для тестового задания - самое то.
kaww
MiksIr, как-то приходилось много сравнивать строки на php. Это оказалось очень медленно (если за эталон брать с++), в итоге пришлось перенести на бд. Что касается оверхеда по памяти (ваше упоминание SplFixedArray обосновано этим фактом?), то при работе с большими данными он уже не такой выраженный (если речь идет о строках, да и о массивах тоже, если в них мало ключей с большими значениями)

P.S. хотя, если файл окажется с короткими строками (относительно zval), и будем экономить на IO, то в полной мере ощутим перерасход памяти.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.