Maison > développement back-end > Tutoriel Python > Programme Python pour rechercher de manière récursive et linéaire des éléments dans un tableau

Programme Python pour rechercher de manière récursive et linéaire des éléments dans un tableau

WBOY
Libérer: 2023-08-20 23:22:30
avant
1085 Les gens l'ont consulté

La

Programme Python pour rechercher de manière récursive et linéaire des éléments dans un tableau

Recherche linéaire est le moyen le plus simple de rechercher des éléments dans un tableau. Il s'agit d'un algorithme de recherche séquentielle qui commence à une extrémité et vérifie chaque élément du tableau jusqu'à ce que l'élément requis soit trouvé.

Récursion c'est lorsqu'une fonction s'appelle elle-même, lors de l'utilisation de fonctions récursives, nous devons utiliser n'importe quelle boucle pour générer des itérations. La syntaxe ci-dessous montre comment fonctionne une fonction récursive simple.

def rerecursiveFun():
   Statements
   ...   
   rerecursiveFun()
   ...
rerecursiveFun
Copier après la connexion

Recherche linéaire d'éléments de manière récursive

La recherche linéaire d'un élément de manière récursive à partir d'un tableau ne peut être réalisée qu'en utilisant des fonctions. En Python, pour définir une fonction, nous devons utiliser le mot-clé def.

Dans cet article, nous apprendrons comment rechercher linéairement des éléments dans un tableau de manière récursive en Python. Ici, nous utiliserons des listes Python au lieu de tableaux puisque Python n'a pas de type de données spécifique pour représenter les tableaux.

Exemple

Nous appellerons la fonction recLinearSearch() de manière récursive en décrémentant la taille du tableau. Si la taille du tableau devient négative, ce qui signifie que l'élément n'est pas dans le tableau, nous renvoyons -1. Si une correspondance est trouvée, la position d'index de l'élément est renvoyée.

# Recursively Linearly Search an Element in an Array  
def recLinearSearch( arr, l, r, x): 
   if r < l: 
      return -1
   if arr[l] == x: 
      return l 
   if arr[r] == x: 
      return r 
   return recLinearSearch(arr, l+1, r-1, x) 
     
lst = [1, 6, 4, 9, 2, 8]
element = 2
res = recLinearSearch(lst, 0, len(lst)-1, element) 
  
if res != -1:
   print('{} was found at index {}.'.format(element, res))
else:
   print('{} was not found.'.format(element))
Copier après la connexion

Sortie

2 was found at index 4.
Copier après la connexion

Exemple

Regardons un autre exemple de recherche d'éléments dans un tableau.

# Recursively Linearly Search an Element in an Array  
def recLinearSearch(arr, curr_index, key):
   if curr_index == -1:
      return -1
   if arr[curr_index] == key:
      return curr_index
   return recLinearSearch(arr, curr_index-1, key)
arr = [1, 3, 6, 9, 12, 15]
element = 6
res = recLinearSearch(arr, len(arr)-1, element) 
  
if res != -1:
   print('{} was found at index {}.'.format(element, res))
else:
   print('{} was not found.'.format(element))
Copier après la connexion

Sortie

6 was found at index 2.
Copier après la connexion

Exemple

Prenons la recherche de l'élément 100 dans un tableau comme autre exemple.

# Recursively Linearly Search an Element in an Array  
def recLinearSearch(arr, curr_index, key):
   if curr_index == -1:
      return -1
   if arr[curr_index] == key:
      return curr_index
   return recLinearSearch(arr, curr_index-1, key)     
arr = [1, 3, 6, 9, 12, 15]
element = 100
res = recLinearSearch(arr, len(arr)-1, element) 
  
if res != -1:
   print('{} was found at index {}.'.format(element, res))
else:
   print('{} was not found.'.format(element))
Copier après la connexion

Sortie

100 was not found.
Copier après la connexion

Dans l'exemple ci-dessus, l'élément 100 est introuvable dans le tableau donné.

Ceci sont des exemples de recherche linéaire récursive d'éléments dans un tableau à l'aide de la programmation Python.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal