Sortering af et bord uden brug af sorteringsfunktionen
Kom i gang
Først og fremmest initialiserer vi en variabel $ max med den 1. værdi af tabellen.
Så laver vi en loop, indtil bordet stadig indeholder elementer.
Ved hjælp af splejsningsfunktionen tømmer vi tabellen.
pseudokode
Hvis tabellen indeholder elementer finder du den maksimale værdi, bestemmer placeringen af elementet fundet, tilføj elementet til toppen af bordet sorteret, i stigende rækkefølge, tilføj elementet til slutningen af bordet sorteret - i faldende rækkefølge slette elementer fundet med splejsning betingelse for sløjfen nulstilles positionen nulstilles max $ med første element i tabellen faldt med splejsning END AS
Kodningen
#! / usr / bin / perl brug strenge; brug advarsler; min @tab = qw / 9 3 7 14 8 7 25 12 1 6 /; min ($ n, $ max, @ tri, @ tri_desc); $ max = $ fan [0]; print "@tab \ n"; mens (@tab) {$ _> $ max og $ max = $ _ for @tab; for (@tab) {$ n ++; sidste hvis $ max == $ _} unshift @ tri, $ max; skub @ tri_desc, $ max; splejse (@ fane, $ n-1, 1); $ N = 0; $ max = $ fan [0]; } print "stigende rækkefølge: \ \ n"; print "faldende rækkefølge: \ _desc \ n"; __ENDE__
Resultater
Ved brug af følgende kombination: 9 3 7 14 8 7 25 12 1 6
Stigende rækkefølge: 1 3 6 7 7 8 9 12 14 25
Faldende rækkefølge: 25 14 12 9 8 7 7