Sortowanie tabeli bez użycia funkcji sortowania

Rozpoczęcie

Przede wszystkim inicjujemy zmienną $ max z pierwszą wartością tabeli.

Potem zrobimy pętlę, aż tabela będzie zawierała elementy.

Używając funkcji łączenia, opróżnimy tabelę.

Pseudo kod

 JEŻELI tabela zawiera elementy, znajdź maksymalną wartość określającą pozycję znalezionego elementu, dodaj element na górze posortowanej tabeli, w kolejności rosnącej dodaj element na koniec posortowanej tabeli - w kolejności malejącej usuń elementy znalezione z łączeniem - zatrzymanie warunek do zresetowania pętli reset pozycji pozycja max z pierwszą pozycją w tabeli zmniejszoną za pomocą splotu END AS 

Kodowanie

 #! / usr / bin / perl use strict; użyj ostrzeżeń; my @tab = qw / 9 3 7 14 8 7 25 12 1 6 /; my ($ n, $ max, @ tri, @ tri_desc); $ max = $ tab [0]; drukuj „@tab n”; while (@tab) {$ _> $ max i $ max = $ _ dla @tab; for (@tab) {$ n ++; last if $ max == $ _} unshift @ tri, $ max; push @ tri_desc, $ max; splice (@ tab, $ n-1, 1); $ n = 0; $ max = $ tab [0]; } print "kolejność rosnąca: n"; drukuj „malejący porządek: _desc n”; __KONIEC__ 

Wyniki

Używając następującej kombinacji: 9 3 7 14 8 7 25 12 1 6

W porządku rosnącym: 1 3 6 7 7 8 9 12 14 25

Malejąco: 25 14 12 9 8 7 7

Poprzedni Artykuł Następny Artykuł

Najważniejsze Wskazówki