Lajittele taulukko ilman lajittelutoimintoa

Päästä alkuun

Ensinnäkin alustamme muuttujan $ max taulukon ensimmäisen arvon kanssa.

Sitten teemme silmukan, kunnes taulukossa on edelleen elementtejä.

Käyttämällä liitosfunktiota tyhjennämme pöydän.

pseudokoodi

 IF-taulukossa on elementtejä, jotka löytävät maksimiarvon, joka määrittää löydetyn elementin sijainnin lisäämällä kohteen taulukon yläreunaan lajiteltuna, lisäämällä nousevassa järjestyksessä kohteen taulukon loppuun lajiteltuna - laskevassa järjestyksessä poistetaan kohteet, jotka löytyvät liitoskohdasta - pysäytys silmukan nollauksen tila palauttaa sijainnin nollaamalla maksimiarvoa taulukon ensimmäisen kohteen kanssa pienentäen splice END AS: llä 

Koodaus

 #! / usr / bin / perl käyttää tiukkoja, käytä varoituksia; my @ tab = qw / 9 3 7 14 8 7 25 12 1 6 /; my ($ n, $ max, @ tri, @ tri_desc); $ max = $ -välilehti [0]; tulosta "@tab"; kun (@tab) {$ _> $ max ja $ max = $ _ @tabille; (@tab) {$ n ++; viimeinen, jos $ max == $ _} unshift @ tri, $ max; paina @ tri_desc, $ max; jatkos (@ välilehti, $ n-1, 1); $ N = 0; $ max = $ -välilehti [0]; } print "nouseva järjestys: n"; tulostaa "laskevassa järjestyksessä: _desc n"; __END__ 

tulokset

Käytettäessä seuraavaa yhdistelmää: 9 3 7 14 8 7 25 12 1 6

Nouseva järjestys: 1 3 6 7 7 8 9 12 14 25

Laskeva järjestys: 25 14 12 9 8 7 7

Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä