Tri par sélection récursif

Voir le sujet précédent Voir le sujet suivant Aller en bas

Tri par sélection récursif

Message par haiethem le Sam 10 Nov - 10:29

DEFE PROC tri_s (var t:tab ; deb,fin:entier)

Résultat = t

t = [ ] si deb < fin alors

p ← FN posmin (t,deb,fin)

PROC permut(t[deb],t[p])

PROC tri_s(t,deb+1,fin)

finsi

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

DEF FN posmin ( t:tab;deb,fin:entier) : entier

résultat = posmin ← m

m = [ m ← deb] pour i de deb + 1 à fin faire

si t[i] < t[m] alors m ← i

finsi

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

DEF PROC permut ( var a,b :réel)

résultat = a,b

a ← b

b ← aux

aux ← a

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

_________________
=================================
Haiethem Elguediri
Lycée Secondaire Mareth
+21652084191
+21652906038
+21631139805
+21675321050
haiethem@gmail.com
www.haiethem.tk
avatar
haiethem

Messages : 425
Points : 14917
Réputation : 3
Date d'inscription : 08/11/2010
Age : 41

Voir le profil de l'utilisateur http://www.haiethem.tk

Revenir en haut Aller en bas

Re: Tri par sélection récursif

Message par Mondher le Ven 16 Nov - 22:39

Salem
bah, je pense que c'est mieux d'utilise seulement le "n" et le "t" comme des parametres formels
DEFE PROC tri_s (var t:tab ; n:entier)

Résultat = t

t = [ ] si n > 1 alors

p ← FN posmax (t,n) {on cherche le max entre en utilisant un compteur qu'a pour debut n-1 et fin 1 pour i de n-1 a 1 faire ... }

PROC permut(t[n],t[p])

PROC tri_s(t,n-1)

finsi {malgré que j'ai changé la proc posmin par posmax mais ce tri reste un tri croissant }

Mondher

Messages : 57
Points : 9436
Réputation : 0
Date d'inscription : 24/09/2012
Age : 22
Localisation : Tunisie

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum