]]>
]]>
Рейтинг@Mail.ru

Оптимизация array search

Материал из Веб программирование.

Перейти к: навигация, поиск

Поиск array_search, как известно очень медленный. Известно, что бинарный поиск быстрей. И Вот одна из реализаций бинарного поиска в PHP.

Это функция очень быстра, попробуйте массив из 50000 элементов и сравните ее с array_search. Вы будете поражены скоростью работы функции binsearch.

$arr=array(1,3,5,7,9,10,11,13);
$searchfor = 6;
echo binsearch($searchfor, $arr);
 
/**
 * @return integer
 * @param var $needle
 * @param array $haystack
 * @desc Feed a sorted array to $haystack and a value to search for to $needle.
             It will return false if not found or the index where it was found.
             This function is superfast. Try an array with 50.000 elements and search for something,
             you will be amazed.
*/
function binsearch($needle, $haystack)
{
    $high = count($haystack);
    $low = 0;
 
    while ($high - $low > 1){
        $probe = ($high + $low) / 2;
        if ($haystack[$probe] < $needle){
            $low = $probe;
        }else{
            $high = $probe;
        }
    }
 
    if ($high == count($haystack) || $haystack[$high] != $needle) {
        return false;
    }else {
        return $high;
    }
}
]]>
Google+
]]>
Личные инструменты
Хочешь еще цитату? Программирование сегодня – это гонка, в которой соревнуются разработчики, стремящиеся построить большие и обладающие защитой от дурака программы, и Вселенная, порождающая все больших и качественных дураков. На данный момент Вселенная побеждает.Рич Кук
веб-программирование
Просмотры
чтим

Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/webproger/data/www/webproger.ru/1c6a72389c0fd92079ac7ae7cd356173/sape.php on line 218 Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/webproger/data/www/webproger.ru/1c6a72389c0fd92079ac7ae7cd356173/sape.php on line 224

]]>
Rambler's Top100
]]>
]]>
]]>