Sortarea unui tabel fără a utiliza funcția de sortare
Noțiuni de bază
Mai întâi inițializăm o variabilă $ max cu valoarea 1 a tabelului.
Apoi vom face o buclă până când masa va conține în continuare elemente.
Folosind funcția de îmbinare, vom goli masa.
Pseudo cod
Dacă tabela conține elemente găsiți valoarea maximă determină poziția elementului găsit adăugați elementul în partea de sus a tabelului sortat, în ordine ascendentă adăugați elementul la sfârșitul tabelului sortat - în ordine descrescătoare ștergeți elementele găsite cu oprirea îmbinării condiția pentru resetarea buclă resetarea poziției max $ cu primul element din tabelă scăzut cu splice END AS
Codificarea
#! / usr / bin / perl utilizați strict; avertismente de utilizare; meu @tab = qw / 9 3 7 14 8 7 25 12 1 6 /; ($ n, $ max, @ tri, @ tri_desc); $ max = $ tab [0]; tipăriți "@tab \ n"; în timp ce (@tab) {$ _> $ max și $ max = $ _ pentru @tab; pentru (@tab) {$ n ++; ultimul dacă $ max == $ _} unshift @ tri, $ max; împinge @ tri_desc, $ max; lipitură (@ tab, $ n-1, 1); $ N = 0; $ max = $ tab [0]; } print "ordine crescătoare: \ \ n"; print "în ordine descrescătoare: \ _desc \ n"; __SFÂRȘIT__
Rezultate
Atunci când utilizați următoarea combinație: 9 3 7 14 8 7 25 12 1 6
Ordine ascendentă: 1 3 6 7 7 8 9 12 14 25
Ordine descrescătoare: 25 14 12 9 8 7 7