Hướng dẫn recursive search in python

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Given an unsorted array and an element x, search x in the given array. Write recursive C code for this. If the element is not present, return -1. 

    Approach : The idea is to compare x with the last element in arr[]. If the element is found at the last position, return it. Else recur searchElement[] for remaining array and element x. 

    C++

    #include

    using namespace std;

    int searchElement[int arr[], int size, int x] {

        size--;

        if [size < 0] {

            return -1;

        }

        if [arr[size] == x] {

            return size;

        }

        return searchElement[arr, size, x];

    }

    int main[] {

        int arr[] = {17, 15, 11, 8, 13, 19};

        int size = sizeof[arr] / sizeof[arr[0]];

        int x = 11;

        int idx = searchElement[arr, size, x];

        if [idx != -1] 

            cout

    Javascript

    function recSearch[arr, l, r, x] 

        if [r < l] 

            return -1; 

        if [arr[l] == x] 

            return l; 

        if [arr[r] == x] 

            return r; 

         return recSearch[arr, l+1, r-1, x]; 

        let arr = [12, 34, 54, 2, 3]; 

        let i; 

        let n = arr.length; 

        let x = 23; 

        let index = recSearch[arr, 0, n - 1, x]; 

        if [index != -1]{

          document.write[`Element ${x} is present at index ${index}`]; 

        }

        else{

            document.write["Element is not present " + x]; 

        }

    Output

    Element 11 is present at index 2

    Explanation

    We iterate through the array from the end by decrementing the size variable and recursively calling the function searchElement[]. If the size variable becomes less than zero it means the element is not present in the array and we return -1. If a match is found, we return the size variable which is the index of the found element. This process is repeated until a value is returned to main[].

    It is important to note that if there are duplicate elements in the array, the index of the last matched element will be returned since we are [recursively] iterating the array from the end.

    Time Complexity: O[N], where N is the size of the given array.
    Auxiliary Space: O[1]

    Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
     


    Chủ Đề