Algorithmes et complexité

2ndeMathematiquesActivité numériqueAlgorithmes et complexité~4 min de lecture

Un algorithme doit être correct, s’arrêter et effectuer un travail que l’on peut estimer.

Algorithmes et complexité

Mathematiques · 2nde

Objectifs

Décrire une recherche et un tri simples, compter des comparaisons et vérifier des cas limites.

Décrire une recherche précise

Un algorithme est une suite finie d’instructions précises pour résoudre un problème. On fixe ses entrées, le résultat attendu et les conditions d’arrêt. Pour une recherche séquentielle, on examine chaque valeur dans l’ordre jusqu’à trouver la cible ou atteindre la fin.

Liste fictive : 300, 700, 500, 900. Cible : 500. Combien de comparaisons avec la cible faut-il ?

Voir la solution après avoir cherché
Comparer 300 à 500 : ce n’est pas égal.
Comparer 700 à 500 : ce n’est pas égal.
Comparer 500 à 500 : la cible est trouvée à la troisième position. Arrêter : trois comparaisons suffisent.
flowchart LR
A[Debut] --> B[Valeur suivante]
B --> C{Egale a la cible}
C -->|Oui| D[Trouvee et arret]
C -->|Non| E{Fin de liste}
E -->|Oui| F[Absente et arret]
E -->|Non| B

Que doit faire l’algorithme si la cible est absente ?

  1. Boucler sans fin.
  2. Annoncer son absence après la dernière valeur.
  3. Inventer une position.
La fin de liste est une condition d’arrêt indispensable, même si la recherche échoue.

Compter et tester

La complexité décrit comment le travail nécessaire évolue avec la taille des données. Pour la recherche séquentielle dans une liste de \(n\) valeurs, on compte ici une comparaison avec la cible par valeur examinée. Le meilleur cas demande une comparaison ; le pire cas en demande \(n\), si la cible est absente ou trouvée à la fin.

Teste la méthode sur une liste vide, une cible en tête, une cible en fin, une cible absente et des valeurs répétées. Un test révèle des erreurs, mais quelques essais réussis ne prouvent pas à eux seuls tous les cas.

Pour une liste fictive de 20 valeurs, quel est le pire nombre de comparaisons avec la cible en recherche séquentielle ?

  1. 1
  2. 20
  3. Toujours 0
Si aucune valeur ne convient avant la fin, les vingt valeurs sont comparées une fois chacune.

Trier avant de rechercher autrement

Le tri par sélection cherche le plus petit élément de la partie non triée et l’échange avec la première place de cette partie. On recommence sur la suite. Après chaque passage, les premières places contiennent les plus petites valeurs dans l’ordre : cette propriété explique pourquoi la méthode est correcte.

Trie la liste fictive 8, 3, 5, 1 par sélection.

Voir la solution après avoir cherché
Premier passage : comparer les quatre valeurs pour repérer le minimum, 1. Échanger avec 8 : on obtient 1, 3, 5, 8. Le minimum a demandé trois comparaisons.
Deuxième passage : comparer les trois valeurs restantes pour trouver 3, déjà à sa place. Deux comparaisons.
Troisième passage : comparer 5 et 8. Une comparaison. La liste est triée.
Bilan pour cet exemple : [3+2+1=6] comparaisons entre valeurs pour sélectionner les minima.

Pour \(n\) valeurs, cette version du tri par sélection effectue \[\frac{n(n-1)}{2}\] comparaisons pour trouver les minima. La somme vient des passages successifs : le premier compare les autres valeurs au minimum provisoire, puis la zone non triée diminue.

Sur une liste déjà triée, la recherche dichotomique compare à une valeur du milieu et élimine la moitié inutile, puis recommence. Sans tri préalable, on risque d’écarter la cible.

Une liste non triée permet-elle une recherche dichotomique correcte en général ?

  1. Oui, sans condition.
  2. Non, le tri est nécessaire pour savoir quelle moitié éliminer.
  3. Seulement si tous les nombres sont positifs.
L’ordre est ce qui permet d’exclure une moitié de la liste sans perdre la cible.

Sources pour vérifier les notions

Les situations chiffrées et les prix éventuels de ce cours sont des données fictives d’exercice ; les calculs sont explicités dans les solutions.

Récapitulatif

Définis entrée et sortie, prévois l’arrêt, teste les cas limites et précise quelle opération tu comptes avant de comparer les méthodes.

Algorithme
Suite finie d’instructions précises.
Recherche séquentielle
Examiner les valeurs dans l’ordre.
Complexité
Évolution du travail avec la taille des données.
Tri par sélection
Placer à chaque passage le minimum restant.
Dichotomie
Réduire la recherche dans une liste triée.

Teste tes connaissances sur ce cours

Crée ton compte gratuitement pour accéder aux quiz associés et suivre ta progression.