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

Forrige Artikel Næste Artikel

Top Tips