Рубрики

Рекурсивная программа для линейного поиска элемента в заданном массиве

Учитывая несортированный массив и элемент x, ищите x в данном массиве. Напишите рекурсивный C-код для этого. Если элемент отсутствует, вернуть -1.

Подход: идея состоит в том, чтобы сравнить x с первым элементом в arr []. Если элемент найден в первой позиции, верните его. Остальное повторяется для оставшегося массива и х.

C ++

// Рекурсивная программа на C ++
// искать x в массиве
#include<bits/stdc++.h>

  

using namespace std;

  
// Рекурсивная функция для
// поиск x в arr [l..r]

int recSearch(int arr[], int l, 

              int r, int 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);

}

  
// Код драйвера

int main()

{

    int arr[] = {12, 34, 54, 2, 3}, i;

    int n = sizeof(arr) / sizeof(arr[0]);

    int x = 3;

    int index = recSearch(arr, 0, n - 1, x);

    if (index != -1)

    cout << "Element " << x 

         << " is present at index "

         << index;

    else

        cout << "Element" << x 

             << " is not present" ;

    return 0;

}

  
// Этот код добавлен
// от Shivi_Aggarwal

С

#include<stdio.h>

  
/ * Рекурсивная функция для поиска x в arr [l..r] * /

int recSearch(int arr[], int l, int r, int 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);

}

  

int main()

{

    int arr[] = {12, 34, 54, 2, 3}, i;

    int n = sizeof(arr)/sizeof(arr[0]);

    int x = 3;

    int index = recSearch(arr, 0, n-1, x);

    if (index != -1)

       printf("Element %d is present at index %d", x, index);

    else

        printf("Element %d is not present", x);

    return 0;

}

Джава

// Рекурсивная Java-программа для поиска x в массиве

class Test

{

     static int arr[] = {12, 34, 54, 2, 3};

       

     / * Рекурсивный метод для поиска x в arr [l..r] * /

     static int recSearch(int arr[], int l, int r, int 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);

     }

       

     // Метод драйвера

     public static void main(String[] args) 

     {

        int x = 3

          

        // вызов метода для поиска x

        int index = recSearch(arr, 0, arr.length-1, x);

        if (index != -1)

           System.out.println("Element " + x + " is present at index "

                                                    index);

        else

            System.out.println("Element " + x + " is not present");

        }

 }

питон

# Рекурсивная функция для поиска x в arr [l..r]

def 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)

  
Код водителя

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

n = len(arr)

x = 3

index = recSearch(arr, 0, n-1, x)

if index != -1:

    print "Element", x,"is present at index %d" %(index)

else:

    print "Element %d is not present" %(x)

  
# Предоставлено Харшитом Агравалом

C #

// Рекурсивная программа на C # для
// ищем x в массиве

using System;

  

static class Test

{

    static int []arr = {12, 34, 54, 2, 3};

      

    / * Рекурсивный метод для поиска x в arr [l..r] * /

    static int recSearch(int []arr, int l, int r, int 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);

    }

      

    // Метод драйвера

    public static void Main(String[] args) 

    {

        int x = 3; 

          

        // вызов метода для поиска x

        int index = recSearch(arr, 0, arr.Length-1, x);

          

        if (index != -1)

        Console.Write("Element " + x + 

                      " is present at index " + index);

        else

            Console.Write("Element " + x + 

                          " is not present");

        }

}

  
// Этот код предоставлен Smitha Dinesh Semwal

PHP

<?php
// Рекурсивная PHP-программа для
// ищем x в массиве

  
// Рекурсивная функция для
// поиск x в arr [l..r]

function recSearch($arr, int $l

                   int $r, int $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);

}

  

    // Код драйвера

    $arr = array(12, 34, 54, 2, 3); $i;

    $n = count($arr);

    $x = 3;

    $index = recSearch($arr, 0, $n - 1, $x);

    if ($index != -1)

    echo "Element"," ", $x," "

         "is present at index ", $index;

    else

        echo "Element is not present", $x;

  
// Этот код предоставлен anuj_67.
?>


Выход:

Рекомендуемые посты:

Рекурсивная программа для линейного поиска элемента в заданном массиве

0.00 (0%) 0 votes