Оригинальный дизайн DecreaseKey кучи Фибоначчи в бумаге Фредмана и Тарьяна - PullRequest
1 голос
/ 13 марта 2019

Я сейчас реализую кучу Фибоначчи в соответствии с исходной Бумагой Фредмана и Тарьяна.Если я правильно понимаю, согласно статье, для выполнения операции DecreseKey узла x , мы просто отсекаем его от его родителя.Но если ключ после уменьшения все еще больше, чем его родитель, он будет неэффективным (я думаю).Кроме того, я вижу много проектов, которые обрезают узел только тогда, когда его ключ становится меньше, чем его родительский, как в CLRS.

Так что я немного запутался в его оригинальном дизайне.Почему они не применили более эффективный способ сделать DecreaseKey .Или, может быть, это облегчает амортизированный анализ?Любой ответ приветствуется.Заранее спасибо.

1 Ответ

0 голосов
/ 14 марта 2019

Я не могу говорить за Фредмана и Тарьяна (хотя я когда-то проверял один из классов Тарьяна), но, вероятно, они были сосредоточены на амортизируемой сложности DecreaseKey в худшем случае, на которую эта оптимизация не влияет.

...