[room] on binary search and merge-sort algos

Denis Kirienko =?iso-8859-1?q?dk_=CE=C1_altlinux=2Eru?=
Пн Авг 20 19:35:09 MSD 2007


Damir Shayhutdinov пишет:
>> То, что вы предлагаете - это тот же тернарный поиск, только проверка еще
>> одного условия вынесена в условие цикла.
> 
> Тогда вы просто слишком формально относитесь к понятию "бинарный поиск".
> 
> Если я правильно понимаю, то, что вы назовете бинарным поиском, будет
> _всегда_ выполняться за O(log n).
> 
> А этот алгоритм "тернарного" поиска будет выполняться за O(log n)
> только в _худшем_ случае.

Решил сравнить быстродействие двух вариантов поиска. Написал свой поиск
и Ваш поиск, запускал на случайных массивах размером 10^7..10^8
элементов. Быстродействие одинаковое в пределах статистической
погрешности (1-2%).

На самом деле правильно написать бинарный поиск не так-то просто.
Присланная вами реализация содержит ошибку (программа попадает в
segfault). Найдете сами или подсказать?

--
Денис




Подробная информация о списке рассылки smoke-room