15.02.12 21:32, Alexander Galanin написав(ла):
Это смотря как распаковывать. Если распаковщик будет читать Central Directory, то там в худшем случае надо пробегаться по списку всех файлов, размер которого линейно зависит от N (по условию). Однако если считать CentralDir и положить хотя бы в map (как в fuse-zip сделано), то распаковка уже за O(N*log N) будет работать (с константой< 1).
Не подходит по условию. Раз для топикстартера даже простой внешний индекс выглядит «некрасиво», то разбирать бинарный CentralDir и создавать индекс в памяти уж совсем чёрная низкоуровневая магия.