[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задача
Batman8585
Найти порядковый номер элемента в отсортированном массиве чисел, которое соответствует определенному условию наиболее оптимальным способом. Написал такой код, может кто нибуть лучше вариант подскажет?
<?php
$array = [1,2,3,4,5,6,7,8,9];
$key = array_search('8', $array);//Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи
echo "$key";
?>
Valick
Batman8585, скорее всего это учебное задание, т.е тебе необходимо реализовать собственный механизм поиска.


_____________
Стимулятор ~yoomoney - 41001303250491
Batman8585
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ка
Да.
И оформляйте код в теги
Batman8585
Эли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ка
echo recBinarySearch($m, $x, $s, $f);

а
$m = [1,3,6,7,9,10,15];
$x = 10;

То есть $s, $f и не определены, наверно поэтому
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.