Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Ulike sorteringsmetoder Kompleksitet av dem

Liknende presentasjoner


Presentasjon om: "Ulike sorteringsmetoder Kompleksitet av dem"— Utskrift av presentasjonen:

1 Ulike sorteringsmetoder Kompleksitet av dem

2 Sorteringsalgoritmer
O(n2)-metoder Innsettingssortering Boblesortering Velgesortering O(nlogn)-metoder Flettesortering Quicksort Heapsort (kommer i kapittel 7) Andre metoder Shellsort Tellesortering Radikssortering

3 Vurderinger ved valg av sorteringsalgoritme
Tidsforbruk Tidskompleksitet viktig ved store tabeller Enkel algoritme viktigere ved mindre tabeller Plassforbruk Noen algoritmer må bruke O(n) ekstra plass Hva som skal sorteres Noen algoritmer fungerer bare på spesielle typer data Noen algoritmer fungerer spesielt godt/dårlig hvis dataene kommer i bestemte rekkefølger Noen ganger er det en fordel at like elementer ikke bytter plass

4 Noen begreper Stigende sortering: Minste først, største sist. Motsatt: Synkende sortering Vi forutsetter stigende sortering Sorteringsnøkkel (evn bare nøkkel): Det vi sorterer etter Stabil sortering: Elementer med lik nøkkel bytter ikke plass Bare interessant hvis elementet består av mer enn nøkkelen Eks: Har studentdata sortert på navn. Ønsker å sortere på klasse. Men for studenter i samme klasse vil vi beholde rekkefølgen

5 O(n2) -metodene Enkle metoder som egner seg for små tabeller
Innsettingssortering (alg side 50): Start med en tabell av 0 sorterte elementer Utvid gradvis den sorterte tabellen ved å sette inn ett og ett element på sortert plass Velgesortering (alg side 52): Finn minste element, plasser det først Finn så nest minste, osv.

6 O(nlogn)-metoder Flettesortering Quicksort
Del tabellen i to, sorter hver del (rekursivt), flett sammen de to delene til en sortert tabell Quicksort Del tabellen i to ”hauger”, en for ”små”nøkler og en for ”store”. Sorter hver ”haug” (rekursivt). Når begge ”haugene” er sortert, er hele tabellen sortert

7 Flettesortering (alg side 56)
Sorter(0, n) Sorter(0, n/2) Sorter(n/2, n/2) Sammenlign første element i den ene delen med første i den andre. Den minste plasseres i en ny tabell, og nytt element hentes for ny sammenligning. Fortsett til alle elementene er flyttet over i resultattabellen

8 Tidskompleksitet T(n) = 2T(n/2) + n a=2, b=2, c=1, k=1
bk=a => T(n) є Θ(nlogn)

9 Quicksort (alg side 59) Må ha en delingsverdi som skiller mellom ”små” og ”store” Går gjennom tabellen fra begge ender. Et ”stort” i nedre del bytter plass med et ”lite” i øvre del Når de to tellerene møtes, har vi fått et delingspunkt som brukes i neste runde av rekursjonen T(n) ≈ 2T(n/2) + cn

10 Nedre grense for kompleksitet
Hvis vi baserer oss på sammenligning av nøkler, kan vi aldri få noe bedre enn Θ(nlogn) Quicksort er den raskeste generelle algoritmen som er funnet Ulempe: Er ikke stabil Flettesortering nesten like rask Ulempe: Bruker ekstra plass

11 Algoritmer med lavere kompleksitet
Kan ikke bygge på sammenligning av nøkler Kan bare brukes på spesielle typer data (for eksempel heltall innenfor et bestemt intervall) Kan bli O(n) Eks: Tellesortering og radikssortering

12 Tellesortering Bare heltall i intervallet 0 til k
Lager en tabell med k+1 elementer Teller opp hvor mange nøkler som er 0, 1, …k Kan deretter beregne posisjonen til ethvert element siden vi vet hvor mange som er mindre enn det.

13 Radikssortering Baserer seg på at alle nøkler har like mange siffer/tegn Eks postnummer: 3456, 3884, 1958, 3883 Sorterer på ett og ett siffer/tegn bakfra 1.runde: 3883, 3884, 3456, 1958 2.runde: 3456, 1958, 3883, 3884 3.runde: 3456, 3883, 3884, 1958 4.runde: 1958, 3456, 3883, 3884 Forutsetter stabil sortering av hvert siffer

14 Oppgave Sorter tabellen 45, 13, 23, 17, 56, 84, 61 med
Innsettingssortering Flettesortering Quicksort Radikssortering


Laste ned ppt "Ulike sorteringsmetoder Kompleksitet av dem"

Liknende presentasjoner


Annonser fra Google