[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
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
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
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
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