ioCode
Recherche dichotomique
Rechercher • Exercices 1A
- Écrire une fonction impérative1IndiceUtiliser une boucle while. Initialiser les bornes de recherche (gauche et droite) puis les ajuster selon la comparaison avec l'élément médian.
rech_dich_imp(t: list[int], elem: int) -> int | Nonequi renvoie l'indice deelemdans la liste triéet, ouNonesi l'élément est absent. Par exemplerech_dich_imp([1, 3, 5, 7], 5)renvoie2. - On s'intéresse maintenant à des séquences dans lesquelles les éléments peuvent être répértés. Par exemple2IndiceRechercher jusqu'à trouver l'élément sans pour autant que gauche soit confondu avec droite.
[1, 2, 2, 2, 3, 3, 5]. Écrire une fonctionle_plus_a_gauche(t, elem)qui renvoie l'indice de la première occurrence deelemdans la liste triéet, ouNonesi l'élément est absent. Par exemplele_plus_a_gauche([1, 3, 3, 5], 3)renvoie1. - Écrire une fonction3IndiceDéfinir le cas de base (gauche > droite) puis appeler récursivement la fonction sur le sous-tableau pertinent.
r_dicho(t, g, d, elem)qui renvoie l'indice deelemdans le sous-tablet[g:d+1], ouNonesi l'élément est absent. Par exempler_dicho([1, 3, 5, 7], 0, 3, 5)renvoie2.
Langage
Console initialisée. En attente de l'interpréteur...