Quelques algorithmes simples

définition algorithme explication avec les applications

Un algorithme est une suite finie et non ambiguë d’instructions et d’opérations permettant de résoudre un type de problèmes. Il est dit correct lorsque, pour chaque instance du problème, il se termine en produisant la bonne sortie, c’est-à-dire qu’il résout le problème posé.

2) Tri par insertion ,par sélection

Le tri par insertion : l’algorithme va chercher une valeur inférieur à la dernière en analysant la liste , des qu’il la trouver

Puis il va la prendre , pour la ramener en arrière jusqu’à trouver une valeur supérieur à celle sélectionner

Le tri par sélection : Il va prendre la 1er valeur , est il va analyser la liste jusqu’à trouver la valeur la plus inférieur à celle sélectionner ici la valeur la plus inférieur à 6 c’est 2 donc il finis d’analyser si il trouve pas de valeurs encore plus petite .

Les deux valeurs s’échange ! puis il continue avec les autres valeurs de la liste une par une . Attention s’il ne trouve pas de valeurs inférieur à celle sélectionner il la laisse et passe a la valeur suivante !

Voici un exemple type insertion puis sélection :

Par Insertion :

def tri_insertion(tableau):
    for i in range(1,len(tableau)):
        en_cours = tableau[i]
        j = i
        #décalage des éléments du tableau }
        while j>0 and tableau[j-1]>en_cours:
            tableau[j]=tableau[j-1]
            j = j-1
        #on insère l'élément à sa place
        tableau[j]=en_cours

Traduction en Pseudo code pour mieux comprendre :

ROCEDURE tri_Selection ( Tableau a[1:n])
    POUR i VARIANT DE 1 A n - 1 FAIRE
        TROUVER [j] LE PLUS PETIT ELEMENT DE [i + 1:n];
        ECHANGER [j] ET [i];
FIN PROCEDURE;

Par Sélection :

def tri_selection(tableau):
    nb = len(tableau)
    for en_cours in range(0,nb):    
        plus_petit = en_cours
        for j in range(en_cours+1,nb) :
            if tableau[j] < tableau[plus_petit] :
                plus_petit = j
        if min is not en_cours :
            temp = tableau[en_cours]
            tableau[en_cours] = tableau[plus_petit]
            tableau[plus_petit] = temp

Traduction Pseudo Code pour mieux comprendre :

ROCEDURE tri_Selection ( Tableau a[1:n])
    POUR i VARIANT DE 1 A n - 1 FAIRE
        TROUVER [j] LE PLUS PETIT ELEMENT DE [i + 1:n];
        ECHANGER [j] ET [i];
FIN PROCEDURE;

Source : http://lwh.free.fr/pages/algo/tri/tri_selection.html

http://lwh.free.fr/pages/algo/tri/tri_insertion.html

Aucune réponse

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *