Hopp til innhold
NorscodeNorscode

std.sortering

ReferanseAv Norscode-prosjektet

std.sortering sorterer lister med tall og tekst, med flere klassiske algoritmer skrevet ut hver for seg — praktisk å bruke og lærerikt å lese.

std.sortering sorterer lister med tall og tekst. Modulen inneholder flere klassiske algoritmer — blant annet boble-, innsettings- og utvalgssortering — i egne varianter for liste_heltall og liste_tekst.

For vanlig bruk velger du bare én av dem; de gir samme resultat. At det finnes flere, er både praktisk og pedagogisk: hver algoritme er skrevet ut for seg, så modulen er et fint sted å lese hvordan sortering faktisk fungerer under panseret.

Når bruker du den

Bruk std.sortering når du skal ordne en liste. For de fleste behov velger du én funksjon og er ferdig. Modulen er også et fint sted å lære hvordan de ulike algoritmene fungerer, siden hver av dem er skrevet ut for seg.

Slik kommer du i gang

bruk std.sortering som sort

funksjon start() -> heiltall {
    la tall = [5, 2, 9, 1, 7]
    sort.boble(tall)          // tall er no [1, 2, 5, 7, 9]
    skriv(tekst(tall[0]))     // "1"
    returner 0
}

boble sorterer lista på plass — etter kallet er tall selv sortert, og du trenger ingen ny variabel.

Funksjonene

Hver algoritme finnes i to varianter: én for tall (boble, innsett, utval …) og én for tekst med _tekst-endelse. Alle sorterer lista på plass og gir samme sluttresultat; de skiller seg bare i hvordan de kommer dit.

  • boble(l: liste_heltall) -> heltall — Boblesorterer en liste_heltall stigende, på plass.
  • boble_tekst(l: liste_tekst) -> heltall — Boblesorterer en liste_tekst, på plass.
  • innsett(l: liste_heltall) -> heltall — Innsettingssorterer en liste_heltall, på plass.
  • innsett_tekst(l: liste_tekst) -> heltall — Innsettingssorterer en liste_tekst, på plass.
  • utval(l: liste_heltall) -> heltall — Utvalgssorterer en liste_heltall, på plass.
  • flett(l: liste_heltall) -> heltall
  • kvikk(l: liste_heltall) -> heltall
  • skall(l: liste_heltall) -> heltall
  • radix(l: liste_heltall) -> heltall
  • heap(l: liste_heltall) -> heltall
  • tim(l: liste_heltall) -> heltall
  • sortert(l: liste_heltall) -> liste_heltall
  • sortert_tekst(l: liste_tekst) -> liste_tekst
  • er_sortert(l: liste_heltall) -> bool
  • er_sortert_synkande(l: liste_heltall) -> bool

Godt å vite

  • Sorteringen skjer på plass: lista du sender inn, er selv sortert etter kallet.
  • Velg tekst-variantene (boble_tekst, innsett_tekst, utval_tekst) for liste_tekst.
  • For små lister spiller valget av algoritme ingen praktisk rolle; de er der like mye for å lære som for å bruke.

std.sortering er én av modulene i standardbiblioteket. Alt følger med kjøretiden — ingen installasjon, ingen eksterne avhengigheter. Se også Dokumentasjon for språket og kjøretiden.

Les også

Tilbake til oversikten