Redigerer
Kvikksortering
(avsnitt)
Hopp til navigering
Hopp til søk
Advarsel:
Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du
logger inn
eller
oppretter en konto
vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.
Antispamsjekk.
Ikke
fyll inn dette feltet!
===Lomutos metode=== Denne metoden tilegnes Nico Lomuto og ble popularisert av Bentley i boken ''Programming Pearls'',<ref name="Bentley1999"/> og av [[Thomas H. Cormen]] med flere i boken ''Introduction to Algorithms''.<ref name="Cormen2009"/> Metoden velger en «dreiepinne» som vanligvis er siste element i tabellen. Algoritmen ivaretar indeksen til «dreiepinnen» i variabelen ''i'', og hver gang den finner et element som er mindre enn eller likt «dreiepinnen» blir denne indeksen inkrementert og dette elementet plasseres foran «dreiepinnen». Denne metoden er mer kompakt og lettere å forstå og er ofte brukt i introduksjoner av algoritmer, men er mindre effektiv enn Hoares opprinnelige metode.<ref name="Wild2012"/> I verste tilfelle krever denne metoden {{math|''O''(''n''<sup>2</sup>)}} sammenligninger. Det skjer når tabellen allerede er sortert eller når den bare har identiske elementer.<ref name="CS2017"/> Ulike varianter av metoden har blitt foreslått for å øke ytelsen, deriblant ulike måter å velge «dreiepinne», håndtering av identiske elementer, bruk av andre algoritmer som f.eks. innstikksortering for mindre tabeller, etc. I [[pseudokode]] kan en quicksort som sorterer elementer fra {{mono|lo}} til {{mono|hi}} i en tabell ''A'' bli uttrykt på følgende måte:<ref name="Cormen2009_170-190"/> '''algoritme''' quicksort(A, lo, hi) '''er''' '''if''' lo < hi '''then''' p := partition(A, lo, hi) quicksort(A, lo, p – 1) quicksort(A, p + 1, hi) '''algoritme''' partition(A, lo, hi) '''er''' dreietapp := A[hi] i := lo ''// sted for ombytting'' '''for''' j := lo '''to''' hi – 1 '''do''' '''if''' A[j] ≤ dreietapp '''then''' bytt om A[i] og A[j] i := i + 1 bytt om A[i] og A[hi] '''return''' i Å sortere hele tabellen blir oppnådd gjennom rutinekallet {{mono|quicksort(A, 1, lengde(A))}}.
Redigeringsforklaring:
Merk at alle bidrag til Wikisida.no anses som frigitt under Creative Commons Navngivelse-DelPåSammeVilkår (se
Wikisida.no:Opphavsrett
for detaljer). Om du ikke vil at ditt materiale skal kunne redigeres og distribueres fritt må du ikke lagre det her.
Du lover oss også at du har skrevet teksten selv, eller kopiert den fra en kilde i offentlig eie eller en annen fri ressurs.
Ikke lagre opphavsrettsbeskyttet materiale uten tillatelse!
Avbryt
Redigeringshjelp
(åpnes i et nytt vindu)
Denne siden er medlem av 1 skjult kategori:
Kategori:Artikler med seksjoner som behøver utvidelse
Navigasjonsmeny
Personlige verktøy
Ikke logget inn
Brukerdiskusjon
Bidrag
Opprett konto
Logg inn
Navnerom
Side
Diskusjon
norsk bokmål
Visninger
Les
Rediger
Rediger kilde
Vis historikk
Mer
Navigasjon
Forside
Siste endringer
Tilfeldig side
Hjelp til MediaWiki
Verktøy
Lenker hit
Relaterte endringer
Spesialsider
Sideinformasjon