Dada una array no ordenada y un elemento x, busque x en la array dada. Escriba código C recursivo para esto. Si el elemento no está presente, devuelve -1.
Enfoque: la idea es comparar x con el último elemento en arr[]. Si el elemento se encuentra en la última posición, devuélvalo. De lo contrario, recurra a searchElement() para la array restante y el elemento x.
C++
/* * 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. */ #include <iostream> using namespace std; // Recursive function to search for x in arr[] int searchElement(int arr[], int size, int x) { size--; // Base case (Element not present in the array) if (size < 0) { return -1; } // Base case (Element found, return its position) if (arr[size] == x) { return size; } // Recursive case return searchElement(arr, size, x); } // Driver code 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 << "Element " << x << " is present at index " <<idx; else cout << "Element " << x << " is not present in the array"; return 0; } // Code contributed by farzams101
C
/* * Approach : The idea is to compare x with the last element in arr[]. * If an element is found at the last position, return it. * Else recur elmntSrch() for remaining array and element x. */ #include <stdio.h> // Recursive function to search x in arr[] int elmntSrch(int arr[], int size, int x) { int rec; size--; if (size >= 0) { if (arr[size] == x) return size; else rec = elmntSrch(arr, size, x); } else return -1; return rec; } int main(void) { int arr[] = {12, 34, 54, 2, 3}; int size = sizeof(arr) / sizeof(arr[0]); int x = 3; int indx; indx = elmntSrch(arr, size, x); if (indx != -1) printf("Element %d is present at index %d", x, indx); else printf("Element %d is not present", x); return 0; } // This code is contributed by Manish Kumar (mkumar2789)
Java
// Recursive Java program to search x in array class Test { static int arr[] = {12, 34, 54, 2, 3}; /* Recursive Method to search x in 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); } // Driver method public static void main(String[] args) { int x = 3; //Method call to find 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"); } }
Python3
# Recursive function to search x in 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) # Driver Code 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)) # Contributed By Harshit Agrawal
C#
// Recursive C# program to // search x in array using System; static class Test { static int []arr = {12, 34, 54, 2, 3}; /* Recursive Method to search x in 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); } // Driver method public static void Main(String[] args) { int x = 3; // Method call to find 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"); } } // This code is contributed by Smitha Dinesh Semwal
PHP
<?php // Recursive PHP program to // search x in array // Recursive function to // search x in 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); } // Driver Code $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; // This code is contributed by anuj_67. ?>
Javascript
<script> // Recursive Javascript program to // search x in array // Recursive function to // search x in arr[l..r] 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); } // Driver Code 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); } // This code is contributed by _saurabh_jaiswal. </script>
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA