How to find the ceiling of N in a sorted array with PHP

1 Answer

0 votes
// ceiling of N = the smallest element in an array greater than or equal to N
 
function find_the_ceiling($arr, $N) {
    $size = count($arr);
     
    if ($N <= $arr[0]) {
        return 0;
    }
     
    for ($i = 0; $i < $size; $i++) {
        if ($arr[$i] == $N) {
                return $i;
        }
        if ($arr[$i] < $N && $arr[$i + 1] >= $N) {
            return $i + 1;
        }
    }
 
    return -1;
}
 
$arr = array(1, 2, 7, 8, 14, 19, 20, 24, 28);
$N = 9;
 
$index = find_the_ceiling($arr, $N);
 
if ($index == -1) {
    echo "The ceiling doesn\'t exist in array";
}
else {
    echo "The ceiling of " . $N . " is " . $arr[$index];
}
 
 
 
  
/*
run:
    
The ceiling of 9 is 14
        
*/

 



answered Jan 20, 2024 by avibootz
edited Jan 20, 2024 by avibootz

Related questions

1 answer 114 views
1 answer 110 views
1 answer 160 views
1 answer 96 views
1 answer 113 views
1 answer 105 views
...