Partie : Les Méthode de Tri Lycée Borjcedria Classe : 4 S. Info Algorithmique Prof : Mr Sallem Med Fares A.S.
: 2023-2024
Séance Fiche Cours Les Méthode de Tri
Le tri d’un tableau : ❖ Tri à bulles d’un tableau de n entiers : Procédure tribulles ( @t : tab , n : entier) T.D.O. Locaux Début Objets Nature / Type Répéter i Entier echange faux echange Booléen Pour i de 0 à n -2 faire permuter procédure Si t[ i ] > t[ i+1 ] alors Procédure permuter ( @t : tab , a , b : entier ) permuter ( t , i , i+1 ) Début echange vrai aux t [ a ] Finsi t[a]t[b] Finpour t [ b ] aux n n-1 fin Jusqu’à ( echange = faux ) ou ( n = 0 ) T.D.O. Locaux Fin Objets Nature / Type aux Entier ❖ Le tri par insertion croissant d’un tableau : Voici l’algorithme de Tri par insertion croissant sur un tableau t de n entiers. Procédure tri_insertion (@t : tab , n : entier) T.D.O.Locaux Début Objets Nature/Type Pour i de 1 à n-1 faire i , aux ,p entier aux t[i] p i ✓ Notez bien : Tantque ( t[p -1] > aux) et (p > 0) Faire La variable « p » représente la position t[p] t[p - 1] d’insertion à rechercher où à la fin la valeur pp-1 « aux » sera placée Fintantque t[p] aux finpour Fin ❖ implémentation en python : « tri_insertion.py » from numpy import* #------------------------------------------------------# from random import randint def tri_insertion(t,n): #--------------------------------------------------------# for i in range(1,n): t=array([0]*100 , int) aux=t[i] #--------------------------------------------------------# p=i def saisir(): while(t[p-1]>aux)and(p>0): n=int(input("Donner n entre 5 et 30 : ")) t[p]=t[p-1] while not(5<=n<=30): p-=1 n=int(input("Donner n entre 5 et 30 : ")) t[p]=aux return n #------------------------------------------------------# #--------------------------------------------------------# #--------------- P.P. Tri insertion ---------------# def remplir(t,n): n=saisir() for i in range(n): remplir(t,n) t[i]=randint(1,100) print("\n *** AFFICHAGE DE T initial ***") #--------------------------------------------------------# affichtab(t,n) def affichtab(t,n): tri_insertion(t,n) for i in range(n): print("\n\n AFFICHAGE DE T trié Final ") print(t[i],end=" | ") affichtab(t,n) #--------------------------------------------------------# #------------------------------------------------------# ❖ Le tri par insertion croissant d’une chaine : Voici l’algorithme de Tri par insertion croissant sur un tableau t de n entiers. Procédure tri_insertion (@ch : chaine) T.D.O.Locaux Début Objets Nature/Type Pour i de 1 à long(ch)-1 faire i , aux ,p entier aux ch[i] p i Notez bien : Tantque ( ch[p -1] > aux) et (p > 0) On remplacera uniquement : Faire ✓ n par long(ch) ch[p] ch[p - 1] ✓ t[i] par ch[i] pp-1 ✓ t[p] par ch[p] Fintantque ✓ t[p-1] par ch[p-1] ch[p] aux finpour Fin ❖ implémentation en python : « tri_insertion_ch.py » #Programme Tri insertion d'une chaine #----------------------------------------------------------# from numpy import* def tri_insertion(ch): #----------------------------------------------------# for i in range(1,len(ch)): def saisirch(): aux=ch[i] ch=input("Donner ch de taille minimale 5: ") p=i while len(ch)<5: while(ch[p-1]>aux)and(p>0): ch=input("Donner ch de taille minimale 5: ") ch = ch[:p] + ch[p-1] + ch[p+1:] return ch p-=1 #-----------------------------------------------------# ch = ch[:p] + aux + ch[p+1:] return ch #----------------------------------------------------------# #---------- P.P. Tri insertion -------------------------# ch=saisirch() print("\n AFFICHAGE ch initiale :\n>>> ",ch) ch=tri_insertion(ch) print("\n AFFICHAGE ch triée :\n>>> ",ch) #---------------------------------------------------------#