Учитывая несортированный массив и элемент x, найдите x в данном массиве. Напишите для этого рекурсивный код C. Если элемент отсутствует, верните -1.
Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.
Approach : The idea is to compare x with first element in arr[]. If element is found at first position, return it. Else recur for remaining array and x.
C++
#include<bits/stdc++.h>
using namespace std;
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;
}
|
C
#include<stdio.h>
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
class Test
{
static int arr[] = { 12 , 34 , 54 , 2 , 3 };
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 ;
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" );
}
}
|
Python
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#
using System;
static class Test
{
static int []arr = {12, 34, 54, 2, 3};
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;
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" );
}
}
|
PHP
<?php
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 ;
?>
|
Javascript
<script>
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);
}
</script>
|
Выход:
Элемент 3 присутствует в индексе 4
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.