====== Algorithmes de recherche ====== Classiquement, pour des données structurées en [[teaching:progappchim:notions_fondamentales#les_listes|listes]], [[teaching:progappchim:notions_fondamentales#d_autres_types|arbres]], un algorithme de recherche va selon un critère donné (une valeur par exemple) retourner un ensemble d'occurrences (toutes, plusieurs, une seule,...). ===== Recherche séquentielle ===== S'il n'existe aucune relation d'ordre (données non triées), l'algorithme le plus simple est celui de la [[http://interactivepython.org/runestone/static/pythonds/SortSearch/TheSequentialSearch.html|recherche séquentielle]]. ===== Recherche dichotomique ===== Pour des données ordonnées; l'exemple le plus connu est la [[https://fr.wikipedia.org/wiki/Dichotomie|recherche dichotomique]] (recherche binaire) qui applique la technique informatique du "[[https://fr.wikipedia.org/wiki/Diviser_pour_r%C3%A9gner_%28informatique%29|diviser pour régner]]", en tirant parti de la relation d'ordre sur les données. Il existe de nombreux autres algorithmes de recherche. ===== Références ===== * Concept : [[https://fr.wikipedia.org/wiki/Algorithme_de_recherche]] * Recherches en listes * Recherche linéaire ou séquentielle : [[https://en.wikipedia.org/wiki/Linear_search]] * recherche dichotomique : [[https://fr.wikipedia.org/wiki/Dichotomie]] * Recherches en arbres * ... * Tables de hachage