TANT QUE le tableau contient des éléments trouve la valeur maximale cherche la position de l'élément trouvé ajouter l'élément au début du tableau trié, l'ordre croissante ajouter l'élément à la fin du tableau trié - l'ordre décroissante suppression d'élément trouvé avec splice - condition d'arrêt de la boucle réinitialiser la position réinitialiser la valeur $max avec le 1er élément du tableau diminué avec splice FIN TANT QUE
#!/usr/bin/perl
use strict;use warnings;
my @tab = qw/9 3 7 14 8 7 25 12 1 6/;
my ($n,$max,@tri,@tri_desc);
$max = $tab[0];
print "@tab\n";
while(@tab){
$_ > $max and $max = $_ for @tab;
for (@tab){ $n++;last if $max == $_}
unshift @tri,$max;
push @tri_desc,$max;
splice(@tab,$n-1,1);
$n=0;
$max = $tab[0];
}
print "ordre croissante:\t@tri\n";
print "ordre decroissante:\t@tri_desc\n";
__END__
lami20j@debian:~# perl ccm.pl 9 3 7 14 8 7 25 12 1 6 ordre croissante: 1 3 6 7 7 8 9 12 14 25 ordre decroissante: 25 14 12 9 8 7 7 6 3 1--
Autres Astuces dans la catégorie Perl