Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Blogs Emploi Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Systèmes Windows Linux
Accueil   TV   Conception Java DotNET Visual Basic C & C++ Delphi Pascal MS-Office SQL & SGBD Oracle  4D 
FORUM PASCAL F.A.Q PASCAL TUTORIELS PASCAL SOURCES COMPILATEURS OUTILS LIVRES
Jacques Dalbin artiste peintre peinture
Bienvenue sur le site de WhiteTigerZ

Rédacteur Pascal, pour le site www.developpez.com

Consulter mon profil...    Me Contacter...
Accueil
 Navigation  
Accueil
 
Tutoriels
 
Tri par sélection
Tri à bulle
Tri par insertion
Recherche séquentielle

 

Recherche Dichotomique
Articles
Sources
Bonus
Liens
remerciements
 
 Informations  
Tri par insertion

Le tri par insertion est le tri le plus efficace sur des listes de petite taille. C'est pourquoi il est utilisé par d'autres méthodes comme le Tri rapide (ou quicksort).

Le principe de ce tri est très simple: c'est le tri que toute personne normale utilise quand elle a des dossiers (ou n'importe quoi d'autre) à classer. On prend un dossier et on le met à sa place parmi les dossiers déjà triés. Puis on recommence avec le dossier suivant.

Pour procéder à un tri par insertion, il suffit de parcourir une liste : on prend les éléments dans l'ordre. Ensuite, on les compare avec les éléments précédents jusqu'à trouver la place de l'élément qu'on considère. Il ne reste plus qu'à décaler les éléments du tableau pour insérer l'élément considéré à sa place dans la partie déjà triée.

Propriétés

Dans le cas du tri par insertion sur un tableau comme implémenté plus bas (implémentation la plus courante), les propriétés suivantes sont vérifiées:
Le nombre de comparaisons nécessaires est de l'ordre de N²/2.
Le nombre moyen d'échanges est de l'ordre de N²/4.

Si une liste chaînée est utilisée, il n'y a plus d'échanges à faire (les insertions se font en temps constant), mais le nombre de comparaisons pour trouver l'emplacement où insérer reste de l'ordre de N²/4.

A contrario, avec un tableau il est possible de faire un nombre de comparaisons de l'ordre de N.ln(N) en utilisant une recherche par dichotomie pour trouver l'emplacement où insérer l'élément. Néanmoins le nombre moyen d'échanges ne sera pas modifié, et l'algorithme reste peu efficace sur les grands tableaux par rapport au tri rapide.

Dans le cas d'une liste presque triée, où seules quelques comparaisons et échanges sont nécessaires par élément, l'implémentation la plus courante du tri par insertion est souvent la meilleure méthode de tri.

Le tri par insertion est un tri stable (conservant l'ordre d'apparition des éléments égaux) et un tri sur place (les éléments sont directement triés dans la structure).

pascal:

 
Tous droits réservés à WhiteTigerZ.  

Responsable bénévole de la rubrique Pascal : wormful_sickfoot - Contacter par EMail :pascal@redaction-developpez.com