[identity profile] spamsink.livejournal.com 2008-07-17 01:19 am (UTC)(link)
Не скажи. Если сравнение дорогое, то лучше так, чем insertion sort.

[identity profile] os80.livejournal.com 2008-07-17 05:37 pm (UTC)(link)
Ха! Где сравнение дорогое ("в жизни"), там ещё есть ошибки эксперимента и т.п., а элегантные решения к таким вещам часто гораздо менее устойчивы, чем "тупые".

[identity profile] spamsink.livejournal.com 2008-07-17 05:47 pm (UTC)(link)
Я не про жизнь, а про объекты со сложной структурой. Да хотя бы точки в пространстве, которые нужно сортировать по расстоянию от чего-либо.

[identity profile] os80.livejournal.com 2008-07-17 06:06 pm (UTC)(link)
Я что-то не понимаю? Ведь для точек, я так понял, самая "тяжёлая" операция - это подсчёт расстояния, и это надо в любом случае выполнить для каждой точки по разу. А само сравнение недорогое.

[identity profile] spamsink.livejournal.com 2008-07-17 06:16 pm (UTC)(link)
Это я отвлекся. Возьмем лексикографическое упорядочение точек в многомерном пространстве.

[identity profile] os80.livejournal.com 2008-07-17 06:34 pm (UTC)(link)
Я такого термина не знаю, но если Вы имеете в виду это (http://slovari.yandex.ru/dict/lopatnikov/article/lop/lop-0674.htm), то его, кажется, можно отсортировать за n-1 сравнений, то есть имеем хорошо масштабируемое (хотя и извратное) решение. В отличие от...

[identity profile] spamsink.livejournal.com 2008-07-17 06:45 pm (UTC)(link)
Его - это кого?

За одно сравнение считается операция на двух сравниваемых объектах, независимо от того, как она устроена внутри.

[identity profile] os80.livejournal.com 2008-07-17 07:05 pm (UTC)(link)
Его - это конечное множество объектов, допускающее лексикографическое упорядочение.
За одно сравнение считается операция, равная по времени (с точностью до постоянного множителя) сравнению двух объектов.
Ну, то есть, можно подобрать такие примеры, когда время будет пропорционально O(N2). Хотя в ряде случаев O(N) можно гарантировать. Но даже в самом худшем случае результат будет не хуже альтернативных способов, не учитывающих особенностей процедуры сравнения. И чем "дороже" единичная операция сравнения, тем больше будет выигрыш.

[identity profile] spamsink.livejournal.com 2008-07-17 07:20 pm (UTC)(link)
"Подобрать примеры" неинтересно. Интересно среднее (или ожидаемое) количество сравнений по всем возможным перестановкам.

[identity profile] malaya-zemlya.livejournal.com 2008-07-17 11:27 pm (UTC)(link)
merge sort всего на 1 сравнение хуже оптимального (а то не всегда), зато гораздо понятнее.

[identity profile] spamsink.livejournal.com 2008-07-17 11:33 pm (UTC)(link)
зато гораздо понятнее

Как там классики писали?

/* you're not supposed to understand this */