алгоритм Крукшала или алгоритм Примса, какой из них лучше при поиске минимального остовного дерева?

Возможный дубликат:
Краскал против Прим

алгоритм Крукшала или алгоритм Примса, какой из них лучше при поиске минимального остовного дерева?


person Eric    schedule 22.11.2010    source источник
comment
@ Аднан: откуда ты знаешь, что это домашнее задание?   -  person R. Martinho Fernandes    schedule 22.11.2010
comment
stackoverflow.com/questions/1195872/kruskal-vs-prim   -  person Eric    schedule 22.11.2010
comment
Звучит очень знакомо для моего вопроса из класса анализа алгоритмов несколько лет назад.   -  person Adnan    schedule 22.11.2010
comment
Простой ответ: они оба по-прежнему широко используются, потому что любой из них может быть лучше в зависимости от характера вашего графа, в частности, количества узлов по сравнению с количеством ребер.   -  person Jerry Coffin    schedule 22.11.2010
comment
Я снял бирку, так как она вас очень обидела и, видимо, это не домашнее задание. Это не должно было быть оскорбительным или обвиняющим, просто попытка сделать этот Q видимым под тегом домашнего задания.   -  person Adnan    schedule 22.11.2010


Ответы (1)


Я добавлю один балл в пользу алгоритма Прима, о котором я не упоминал. Если вам даны N точек и функция расстояния d (x, y) для расстояния между x и y, легко реализовать алгоритм Прима, используя пространство O (N) (но время N ^ 2).

Начните с произвольной точки A и создайте массив размером N-1, в котором указаны расстояния от A до всех других точек. Выберите точку B, связанную с кратчайшим расстоянием, свяжите A и B в остовном дереве, а затем обновите расстояния в массиве до минимума расстояния, уже отмеченного до этой другой точки, и расстояния от B до этой другой точки. точку, отмечая, где самая короткая ссылка от B, а где от A. Продолжайте.

Я не знаю аналогичного способа обработки алгоритма Крускала для плотного графа, заданного функцией расстояния, и для больших N у вас может закончиться пространство O (N ^ 2), прежде чем у вас закончится терпение на время O (N ^ 2).

person mcdowella    schedule 22.11.2010