std.sortering
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 enliste_heltallstigende, på plass.boble_tekst(l: liste_tekst) -> heltall— Boblesorterer enliste_tekst, på plass.innsett(l: liste_heltall) -> heltall— Innsettingssorterer enliste_heltall, på plass.innsett_tekst(l: liste_tekst) -> heltall— Innsettingssorterer enliste_tekst, på plass.utval(l: liste_heltall) -> heltall— Utvalgssorterer enliste_heltall, på plass.flett(l: liste_heltall) -> heltallkvikk(l: liste_heltall) -> heltallskall(l: liste_heltall) -> heltallradix(l: liste_heltall) -> heltallheap(l: liste_heltall) -> heltalltim(l: liste_heltall) -> heltallsortert(l: liste_heltall) -> liste_heltallsortert_tekst(l: liste_tekst) -> liste_tekster_sortert(l: liste_heltall) -> booler_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) forliste_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å
- std.tekststd.tekst er verktøykassen for tekst: søke og sjekke, dele og sette sammen, trimme blanktegn, endre mellom store og små bokstaver, og konvertere til og fra tall.
- std.jsonstd.json lar programmet ditt snakke JSON: parse gjør en JSON-tekst om til en ordbok du kan hente verdier fra trygt, og stringify går den andre veien.
- std.filstd.fil er det enkleste laget mellom programmet ditt og filsystemet: sjekk om en fil finnes, les og skriv tekst, eller les og skriv rå bytes — med disk-kapabilitet.