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

Articolul Precedent Articolul Următor

Cele Mai Importante Sfaturi