Forum pour les élèves lycéens
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

Tri par sélection récursif

Aller en bas

Tri par sélection récursif Empty Tri par sélection récursif

Message par haiethem 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
haiethem

Messages : 485
Points : 27103
Réputation : 3
Date d'inscription : 08/11/2010
Age : 47

http://www.gdiri.info

Revenir en haut Aller en bas

Tri par sélection récursif Empty Re: Tri par sélection récursif

Message par Invité 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 }

Invité
Invité


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

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