Здравствуйте Alex V. Myltsev В сообщении от Sunday 17 December 2006 23:18 Alex V. Myltsev написал(a): > On Sun, 17 Dec 2006 22:42:52 +0300 Hihin Ruslan wrote: > > > подают нам на вход последовательность {a,c,d,b,e}; она > > > неупорядочена, а сравнением соседних элементов мы этого > > > обнаружить не можем. И сортировка вся идёт лесом. > > Как это не парадоксально, но если читать что несравнимость - это > > один из видов равенства, то можно упорядочить в - вашем примере > Конечно, можно. Это же частичный порядок, никто не мешает его > доопределить %-). > > > В общем имеем ситуацию сортировки элементов графа > Угу. И что-то подсказывает мне, что это дольше, чем сортировка > множества с полным порядком Упрощённо имеем : Множество пакетов A(a1),B(a2),C(a3)...N(an), A1(b1),B1(b2),...N1(bn), ......Z1(z1),Z2(z2),...ZN(zn), где a...z - характеристика ветки, 1..n - вес пакета в ветке A...ZN - имя пакета: Имеются следующие отношения между пакетами Наследования A , которая чаще всего нужна на практике. Правильнее сказать - её алгоритм проще, а вот насчёт того, что сортировка графов дольше - это неверно, наоборот сортировка множества дольше, т.к. в нём не учитывается, что в самих пакетах уже есть информация о пакетах - родителях и приходится путём перебора их "отсеивать". > Поэтому и появилось в STL упомянутое требование. (А те, кому > действительно нужно сортировать графы, могут написать собственный > sort.) Вообще-то есть tsort, правда я не разбирался как он работает, но в RPM он есть, во всяком случае в исходниках RPM лежит программка rpmsort (опять-же подробно не смотрел её код). Насколько я знаю алгоритм сортировки графов подробно рассмотрен в одном из томов Кнут (в юности читал, но сам том с сортировкой у меня не сохранился). http://homepages.compuserve.de/chasluebeck/lipsky2.htm http://algolist.manual.ru/sort/ > (Мне кажется, продолжать тему в этом направлении можно только в > smoke-room.) Ну извините, я заканчиваю на этом :) -- С уважением Xихин Руслан