[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
- Shift tab - Forum Windows
- Photoshop elements gratuit - Télécharger - Retouche d'image
- Aucun son ne sort de mon pc - Guide
- Tirage au sort excel aléatoire sans doublon ✓ - Forum Excel
- Quand sort l'iphone 14 - Guide
5 réponses
mamiemando
Messages postés
32283
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 mars 2023
7 572
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
18587
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
12 mars 2023
5 583
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 566
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 566
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