Een tabel sorteren zonder de sorteerfunctie te gebruiken

Ermee beginnen

Allereerst initialiseren we een variabele $ max met de 1e waarde van tabel.

Daarna maken we een lus totdat de tafel nog elementen bevat.

Met behulp van de splice- functie zullen we de tafel legen.

pseudocode

 ALS tabel elementen bevat zoek de maximale waarde bepaal de positie van het gevonden element voeg het item toe aan de bovenkant van de tabel gesorteerd, in oplopende volgorde voeg het item toe aan het einde van de tabel gesorteerd - in aflopende volgorde verwijder items gevonden met splice - stoppen voorwaarde voor de lus reset de positie reset de max $ met eerste item in de tabel verlaagd met splice END AS 

De codering

 #! / usr / bin / perl gebruik strict; gebruik waarschuwingen; mijn @tab = qw / 9 3 7 14 8 7 25 12 1 6 /; mijn ($ n, $ max, @ tri, @ tri_desc); $ max = $ tabblad [0]; print "@tab \ n"; while (@tab) {$ _> $ max en $ max = $ _ voor @tab; for (@tab) {$ n ++; last if $ max == $ _} unshift @ tri, $ max; druk op @ tri_desc, $ max; splice (@ tab, $ n-1, 1); $ N = 0; $ max = $ tabblad [0]; } print "oplopende volgorde: \ \ n"; print "aflopende volgorde: \ _desc \ n"; __EINDE__ 

resultaten

Bij gebruik van de volgende combinatie: 9 3 7 14 8 7 25 12 1 6

Oplopende volgorde: 1 3 6 7 7 8 9 12 14 25

Aflopende volgorde: 25 14 12 9 8 7 7

Vorige Artikel Volgende Artikel

Top Tips