[room] on binary search and merge-sort algos
Denis Kirienko
dk на altlinux.ru
Пн Авг 20 12:49:54 MSD 2007
Damir Shayhutdinov пишет:
> Если вы условие выхода из цикла не считаете за "деление массива",
> тогда третью часть можно вынести в это условие цикла.
>
> unsigned low = 0;
> unsigned mid = 0;
> unsigned high = a.length - 1;
>
> while (low <= high && a[mid] != key)
> {
> mid = (low + high) / 2;
> if (a[mid] < key)
> low = mid + 1;
> else
> high = mid - 1;
> }
> if (a[mid] == key) return mid;
> return -(low + 1);
То, что вы предлагаете - это тот же тернарный поиск, только проверка еще
одного условия вынесена в условие цикла.
--
Денис
Подробная информация о списке рассылки smoke-room