Batman8585
30.12.2018 - 02:13
Найти порядковый номер элемента в отсортированном массиве чисел, которое соответствует определенному условию наиболее оптимальным способом. Написал такой код, может кто нибуть лучше вариант подскажет?
<?php
$array = [1,2,3,4,5,6,7,8,9];
$key = array_search('8', $array);//Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи
echo "$key";
?>
Valick
30.12.2018 - 15:58
Batman8585, скорее всего это учебное задание, т.е тебе необходимо реализовать собственный механизм поиска.
_____________
Стимулятор ~yoomoney - 41001303250491
Batman8585
30.12.2018 - 16:33
Valick
например такой???
function recBinarySearch($m, $x, $s, $f)
{
if ($s > $f)
{
return 'notFound';
}
$q = floor(($s+$f)/2);
if($m[$q] == $x)
{
return $q;
}
elseif($m[$q] > $x)
{
return recBinarySearch($m, $x, $s, $q-1);
}
else
{
return recBinarySearch($m, $x, $q+1, $f);
}
}
Эли4ка
30.12.2018 - 17:00
Да.
И оформляйте код в теги
Batman8585
30.12.2018 - 20:54
Эли4ка
почему то выдает нотфаунд все время. не подскажешь в чем проблема?
<?PHP
$m = [1,3,6,7,9,10,15];
$x = 10;
function recBinarySearch($m, $x, $s = 0, $f = 15)
{
if ($s > $f)
{
return 'notFound';
}
$q = floor(($s+$f)/2);
if($m[$q] == $x)
{
return $q;
}
elseif($m[$q] > $x)
{
return recBinarySearch($m, $x, $s, $q-1);
}
else
{
return recBinarySearch($m, $x, $q+1, $f);
}
}
echo recBinarySearch($m, $x, $s, $f);
?>
Эли4ка
30.12.2018 - 23:51
echo recBinarySearch($m, $x, $s, $f);
а
$m = [1,3,6,7,9,10,15];
$x = 10;
То есть $s, $f и не определены, наверно поэтому
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.