Дан отсортированный массив, число X, нужно найти два элемента сумма равна X, иначе вывести 0. O(nlogn)) (бинарный поиск)

$i = 0;
$j = count($array) - 1;

while ($i < $j) {
    $sum = (int) $array[$i] + (int) $array[$j];
    if ($sum == $k) {
        echo "ok";
        break;
    }

    if ($sum > $k) {
        $j--;
    } else {
        $i++;
    }
}

if ($i == $j) {
    echo "no";
}

Это оказывается O(n)


Ответы (0 шт):