php: алгоритм быстрого поиска в массиве

Aug 14, 2013 23:31

23:30 14.08.2013

php: алгоритм быстрого поиска в массиве

Задача:

Есть одномерный массив в 1100 элементов. Нужно определить, есть-ли в нем
элемент со значением X.

Первое что приходит на ум:

1
2
3
4
5
6
7
8

if (in_array('X', $d))
{
$res1 = true;
}
else
{
$res1 = false;
}

И это правильное решение. Но не оптимальное. Время выполнения данного куска кода 6.0081481.

Вот более приемлемый вариант, который работает в разы быстрее:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

function fast_srch($theArray, $searchElement)
{
if (!is_array($searchElement))
{
$e = array($searchElement);
} else {
$e = $searchElement;
}

$a1 = array_merge($theArray, $e);
$a2 = array_diff($a1, $theArray);

if (count($a2))
{
return false;
} else {
return true;
}
}

$res = fast_srch($d, 'X');

И время выполнения - 0.0011916!!!












read more at Записная книжка web-разработчика

rss2lj

web development

Previous post Next post
Up