Untitled

 avatar
unknown
plain_text
3 years ago
1.5 kB
17
Indexable
<?php

$arrayOfNumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// 5, 6, 7, 8, 9
// 5, 
// 6
// ,7

$x = 8;


function searchInArray($numbers, $unknown)
{
    if(sizeof($numbers) == 1){
        
        if($numbers[array_key_last($numbers)] == $unknown){
            return array_key_last($numbers);
        }


        return 'paida nashod';
    }

    if(sizeof($numbers) == 0){
        return 'paida nashod';
    }

    $pivot = intval((array_key_first($numbers) + array_key_last($numbers))/2);

    if($numbers[$pivot] > $unknown){

        $startIndex = array_key_first($numbers);

        var_dump($pivot, $startIndex); die();
        
        $endIndex = $pivot;

        return searchInArray(

                // array_values(
                    array_slice(
                        $numbers,
                        $startIndex,
                        $endIndex - $startIndex
                    )
                // )
                ,

                $unknown
            );

    
    }elseif($numbers[$pivot] < $unknown){
    
        $startIndex = $pivot+1;
    
        $endIndex = array_key_last($numbers);

        return searchInArray(

                array_slice(
                    $numbers, 
                    $startIndex, 
                    $endIndex - $startIndex
                )
                ,

                $unknown
            );
    
    }elseif($numbers[$pivot] == $unknown) {
        return $pivot;
    }

}

$result = searchInArray($arrayOfNumbers, $x);

echo $result;

echo PHP_EOL;
Editor is loading...