INF 295 Forelesning 20 - Kapittel 7 Boble-, innstikk-, Shell-, Heap-, Quick-, Mergesortering Hans Fr. Nordhaug (Ola Bø)

Slides:



Advertisements
Liknende presentasjoner
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Advertisements

Kap.8 Sortering og søking sist oppdatert • Del 1 Søking - lineær søking m/u sorterte elementer - binærsøking - analyse • Del 2 Sortering - ”gamle”
Algoritmer for søk og sortering Førsteamanuensis Alf Inge Wang
Ulike sorteringsmetoder Kompleksitet av dem
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Kompleksitetsanalyse
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø
Forside Motivasjon Analyse Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Kompleksitetsanalyse Åsmund Eldhuset asmunde.
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)
Algoritmiske metoder Innhold: Effektivitetsbetraktninger Programmeringsteknikker Datastrukturer Algoritmer tilknyttet datastrukturene Lærebok: Hafting/Ljosland:
Klargjøring fra forrige gang
Kap 02 Tabeller / Tabelloperasjoner. Enkeltvariable Les inn nedbørmengde for årets 12 måneder: Les n1 Les n2 … Les n12 n1 n2 n12.
Randomisering av deltakere i eksperiment
INF 295 Algoritmer og datastrukturer Forelesning 21 Merge, Quick og Bøtte, Radix og ekstern sortering Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 1 - kapittel 1 Introduksjon Hans F. Nordhaug (Ola Bø) (Ketil Danielsen, 2007)
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 8 Trær Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Prioritetskø (Heap) Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 11 Når RAM ikke strekker til - B-trær og Utvidbar hashing Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Andre prioritetskøer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 24 Repetisjon
INF 295 Algoritmer og datastrukturer Forelesning 9b Balanserte (binære) trær Hans Fr. Nordhaug.
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
1 Kap 06 Ordnede / Sorterte lister Oppgave nr 06_02 Polynomer Klassehierarki Javadokumentasjon.
INF 295 forelesning 12 Repetisjon per 17. februar Hans F. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 5 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø.
Ortering Mål: Se på forskjellige måter for sortering.
Sorterings- Algoritmer Algoritmer og Datastrukturer.
INF 295 Algoritmer og datastrukturer Web-spider Oblig 3 Hans Fr. Nordhaug (Ola Bø)
Kapittel 9 Polymorfi. 9.1 Sein binding Ofte er det perfekt match mellom typen til ein variabel og objektet han refererer til ChessPiece bishop;... bishop.
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø.
1 Øvingsforelesning 4 Topologisk sortering Minimale spenntrær Håkon Jacobsen
DILEMMA, DRIVKREFTER OG BARRIERER
Geometri 1.
Are Raklev Teoretisk fysikk, rom FØ456,
Forelesning 9 Are Raklev.
Are Raklev Teoretisk fysikk, rom FØ456,
Are Raklev Teoretisk fysikk, rom FØ456,
Måling.
Forelesning 4 Are Raklev.
Arbeidsgiver skal utføre risikovurdering.
Måling.
AST En kosmisk reise Forelesning 2:
Are Raklev Teoretisk fysikk, rom FØ456,
Tallsystemer.
Tall og algebra Matematikk 1T
Kunnskap skaper verdier
Forelesning 8 Are Raklev.
INF2220 – høsten 2016, 9. nov. Sortering del I (kap. 7.) Arne Maus,
Periodeplan for Sommerly uke 6 og 7 AKSJON FORUT
Overordnet konseptmodell MUSIT
Lungefunksjonsmålinger ved CF
Idrettslag i Allianse:
Dag Wiese Schartum, AFIN
juni Bursdager MAN TIRS ONS TORS FRE UKE 25
Ny ROS-analyse for vann og avløp er under utarbeidelse
Oversikt over forsterkede avdelinger i Bergen kommune trinn
Vipps valgfritt beløp til 2216
Utskrift av presentasjonen:

INF 295 Forelesning 20 - Kapittel 7 Boble-, innstikk-, Shell-, Heap-, Quick-, Mergesortering Hans Fr. Nordhaug (Ola Bø)

Sortering Sortering av array - intern sortering Ekstern sortering nødvendig ved store datamengder Kjøretider intern sortering Flere enkle algoritmer O(N 2 ) Shellsort o(N 2 ) svært rask i praksis Mer kompliserte algoritmer O(NlogN) Alle generelle sorteringsalgoritmer krever minst Ω(NlogN) sammenligninger Gir ideer til kodeoptimering og algoritmedesign

Innledning De beskrevne algoritmene er utskiftbare Alle motar N elementer som skal sorteres i en array Elementene som skal sorteres implementerer Comparable compareTo() brukes for ordne elementene i en definert rekkefølge Slik sortering kalles sammenligningsbasert sortering

Klassifisering Innstikk (Insertion) Vanlig instikk, shellsort Bytte (Exchange) Boble, Cocktail/Shaker, (Quicksort) Utvalg (Selection) Vanlig utvalg, treutvalg, heapsort Fletting (Merge), indeksering og partisjonering

Klassifisering Sammenligningsbasert Kompleksitet Minnebruk Stabilitet

Boble-sortering Bobler store elementer mot høyre

Innstikk-sortering Algoritme: Går gjennom dataene N-1 ganger (passes) Etter hver gjennomgang p er alle elementer fra 0 tom. p sortert I gjennomgang p flytter vi element p til venstre, helt til det kommer til sin rette posisjon ta element p over i tmp flytt alle større elementer til venstre for p ett trinn mot høyre sett inn element tmp på den ledige plassen

Innstikk-sortering

Algoritmen er θ(N 2 ) Hvis input er ferdig sortert er tiden O(N)

Nedre grense for enkle sorteringsalgoritmer En inversjon i en array av tall er et par av tall der i a[j] Antall inversjoner er lik antall ombyttinger i insert sort Det kan vises at i gjennomsnitt er antall inversjoner N(N-1)/4 Algoritmer som arbeider ved å bytte om på naboelementer blir dermed O(N 2 ) Skal en algoritme være raskere enn kvadratisk, må den bytte elementer som ligger lenger unna hverandre

Shellsort Første algoritme som er bedre enn kvadratisk Sammenligner elementer som ligger lenger unna hverandre Starter med store avstander - i siste runde er avstanden 1 Sortering med fallende avstand Avstandssekvensen: h 1, h 2,...., h t Kan variere, men h 1 må være 1 (h 1 brukes i siste runde) Har stor betydning for kjøretiden Donald Shell foreslo h t =antall/2 og h k-1 =h k /2 - et dårlig valg Hver runde sorterer elementmengdene med avstand h k ved innsetting. Sier da at arrayen er h k -sortert.

Shellsort

Worst case med Shells inkrementer Θ(N 2 ) Kan forbedres med Hibbards inkrementer 1,3,7,..,2 k -1 Θ(N 3/2 ) Kan ytterligere forbedres med Sedgewicks inkrementer O(N 4/3 ) Er rask fordi Sorteringen i alle pass unntatt det siste gjør billig sortering av ikke-naboer Siste pass - instikk-sortering kjører på en nesten ferdig sortert array - og det er raskt Shellsort er enkel og gir brukbar ytelse i praksis ved N~10000

Heap-sortering Sortering ved hjelp av prioritetskø O(NlogN), men tregere i praksis enn Shellsort med Sedgewicks inkrementer Kjøretider Bygge treet O(N) i snitt O(NlogN) worst case Hente alle elementene med deleteMin O(NlogN)