Задачка из жизни

Jul 08, 2012 22:54

Реально из жизни, но теперь буду спрашивать на интервью ( Read more... )

рабочее, Задачки

Leave a comment

Comments 19

efimg July 9 2012, 14:11:42 UTC
А чем это отличается от распределения heap-а памяти? В простейшем случае, система хранит список свободных блоков памяти (в виде пары - адрес, длина), и когда новый блок освобождается, должна вставить его в список свободных. И именно так, как требуется в задаче, т.е. присоединить к уже имеющимся, спереди и сзади.
Решение довольно простое.

Reply

kot_begemot July 10 2012, 01:03:47 UTC
Ну это примерно оно и есть, только распределяется не память, а дисковое пространство.

Reply

ctapnep July 10 2012, 15:21:06 UTC
в случае хипа задача чуть проще. Освобождаемый кусок памяти никогда не пересекается с уже свободными. Он может только прилегать к уже свободным. А в общем случае новый интервал может не только прилегать, но и пересекаться или даже перекрывать существующие. Но это таки детали, которые не сильно влияют на алгоритм (вернее на лагоритм не влияют вообще, только на реализацию).

Reply


ykats August 3 2012, 21:23:12 UTC
Задал сегодня на интервью, поставив кандидата в полный тупик. Хорошая задачка, взял на вооружение!

Reply


Leave a comment

Up