> > n^2 это в данном случае бесконечность. Понятно, что надо сохранять вектор 
> > отступов
> > блоков на первом проходе..
> 
> Тут на интересную задачку можно накопать, если не знать про входные данные 
> более 
> ничего :)
> 
> Если хранить вектор отступов, то памяти при работе потребуется M = 
> (N/K)*sizeof(off_t)+K, где N — размер файла, K — размер блока, который мы 
> можем 
> распаковываем единовременно. При этом M может оказаться больше, чем размер 
> доступной памяти.

Ну, в тяжелом случае (файл состоит из одних переводов строки или чего-то очень
близкого, что можно сжать в один блок) нам все равно придется разжать весь
файл, если пользоваться zlib, а не лезть в структуру уже блока грязными
ногами.  А в типичном нам нужно хранить не полный вектор отступов, а только
те, которые еще нужны, а их вряд ли много - один, ну, два.

-- 
If a `religion' is defined to be a system of ideas that contains
unprovable statements, then Godel taught us that mathematics is not
only a religion, it is the only religion that can prove itself to be
one.
 -- John Barrow


--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/87lio6ohtx.wl%[email protected]

Ответить