[PERL] Trier éléments d'un tab SANS sort
Résolu/Fermé
F_Pignon
Messages postés
23
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
29 mai 2008
-
28 oct. 2007 à 10:19
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 29 oct. 2007 à 12:35
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 29 oct. 2007 à 12:35
A voir également:
- [PERL] Trier éléments d'un tab SANS sort
- Excel trier par ordre croissant chiffre - Guide
- Samsung galaxy tab a9+ avis - Accueil - Tablettes
- Photoshop elements gratuit - Télécharger - Retouche d'image
- Aucun son ne sort de mon pc - Guide
- Application gratuite pour trier les photos - Guide
5 réponses
mamiemando
Messages postés
33535
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 février 2025
7 828
28 oct. 2007 à 15:08
28 oct. 2007 à 15:08
Je pense qu'il suffit que tu regardes les algos de tri classique (tri par insertion, tri à bulle, tri fusion etc) et que tu le réimplémentes en perl.
Bonne chance
Bonne chance
dubcek
Messages postés
18764
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
9 février 2025
5 623
28 oct. 2007 à 15:17
28 oct. 2007 à 15:17
tout (ou presque) est là : https://fr.wikipedia.org/wiki/Algorithme_de_tri
F_Pignon
Messages postés
23
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
29 mai 2008
1
28 oct. 2007 à 16:15
28 oct. 2007 à 16:15
Bonjour mamiemando et dubcek
Merci a tous les deux, je vais regarder ce que je peux trouver
Merci a tous les deux, je vais regarder ce que je peux trouver
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
29 oct. 2007 à 12:29
29 oct. 2007 à 12:29
Salut,
essaie ça
Le résultat
essaie ça
#!/usr/bin/perl use strict;use warnings; my @tab = qw/9 3 7 14 8 7 25 12 1 6/; my ($n,$max,@tri); $max = $tab[0]; print "@tab\n"; while(@tab){ $_ > $max and $max = $_ for @tab; for (@tab){ $n++;last if $max == $_} splice(@tab,$n-1,1); unshift @tri,$max; $n=0; $max = $tab[0]; } print "@tri\n"; __END__
Le résultat
root@debian:~# perl ccm.pl 9 3 7 14 8 7 25 12 1 6 1 3 6 7 7 8 9 12 14 25--
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
29 oct. 2007 à 12:35
29 oct. 2007 à 12:35
Et voici un supplément
lami20j
root@debian:~# cat ccm.pl
#!/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__
root@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
L'algorithmeTANT 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 réinitialiser la posion réinitialiser la valeur $max avec le 1er élément du tableau diminuer avec splice FIN TANT QUE--
lami20j