Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Søgning & sortering Intro søgning Lineær søgning Binær søgning

Lignende præsentationer


Præsentationer af emnet: "Søgning & sortering Intro søgning Lineær søgning Binær søgning"— Præsentationens transcript:

1 Søgning & sortering Intro søgning Lineær søgning Binær søgning
Intro sorteringsalgoritmer Selection sort Insertion sort Merge sort Oversigt over effektivitet for søge- & sorteringsalgoritmer Steen Jensen, efterår 2013

2 Intro søgning Søgning indebærer at afgøre, om en given værdi (søgenøgle, eng.: search key) findes i et array To populære algoritmer: lineær søgning & binær søgning

3 Lineær søgning (figur 18.2 s. 755)
Eksemplet viser en lineær søgning udført på et array med 10 elementer Algoritmen for en lineær søgning søger hvert element i array’et sekventielt

4 Effektivitet for lineær søgning
Forskellige søgealgoritmer har alle det samme mål: at finde et element, der matcher en given søgenøgle Den store forskel er den indsats, der er nødvendig – en måleenhed for dette er Big O, som er et udtryk for worst-case runtime for en algoritme Der skelnes mellem tre Big O typer: Constant runtime – betyder, at antallet af sammenligninger er konstant og ikke stiger med antallet af elementer i array’et: O(1) Linear runtime – betegner en algoritme, der bruger n – 1 sammenligninger: O(n) Quadratic runtime – er en algoritme, hvor er fordobling af antal elementer i array’et bevirker en firdobling af antal søgninger: O(n 2) Den lineære søgning tilhører linear runtime

5 Binær søgning (figur 18.4 s. 760)
Eksemplet viser en binær søgning udført på et array med 15 elementer Algoritmen for en binær søgning deler løbende array’et i 2 dele og tester den midterste værdi i den tilbageværende del af array’et mod søgenøglen Algoritmen kræver, at array’et er sorteret på forhånd

6 Sorteringsalgoritmer
Sortering handler om at placere data i en bestemt rækkefølge – stigende (eng.: ascending) eller faldende (eng.: descending) Uanset algoritme vil slutresultatet blive det samme – kun runtime & brug af hukommelse vil variere Tre algoritmer: Selection sort og insertion sort: nemme at programmere, men ineffektive Merge sort : meget hurtigere end de to ovennævnte, men sværere at programmere

7 Selection sort (figur 18.6 s. 765)
Eksemplet viser en selection sort udført på et array med 10 elementer Algoritmen for en selection sort vælger det mindste element og swapper dette med det første element Derefter fortsættes med det andet mindste element, der swappes med det andet element o.s.v.

8 Insertion sort (figur 18.8 s. 769)
Eksemplet viser en insertion sort udført på et array med 10 elementer Algoritmen for en insertion sort vælger det andet element og swapper dette med det første element, hvis det er mindre end dette Derefter fortsættes med det tredje element, som indsættes i den korrekte position i forhold til de to første elementer o.s.v.

9 Merge sort (figur s. 773) Eksemplet viser en merge sort udført på et array med 10 elementer Algoritmen for en merge sort sorterer et array ved at splitte array’et op i to sub-arrays Hvert sub-array sorteres, og de to sub-arrays sammensættes (eng.: merge) til et større array Implementeringen er rekursiv

10 Merge sort, 2

11 Oversigt over effektivitet for søge- & sorteringsalgoritmer

12 Øvelser søgning & sortering – i klassen
Prøv at besvare øvelse s. 781 uden at se svaret Check derefter dine svar op imod svarene s. 781

13 Programmeringsøvelser – exception handling
Resten af dagen + fortsæt hjemme: Lav en app, hvor brugeren kan indtaste en række tal eller ord (eget valg). Tallene / ordene skal løbende gemmes i et array. Når brugeren har indtastet den sidste værdi, skal array’et sorteres og udskrives Udvid app’en fra 1), så brugeren efter at have indtastet den sidste værdi kan indtaste en søgenøgle, som så skal søges frem og vises Prøv evt. at implementere Spejdersystemet, så der benyttes arrays i stedet for tekstfiler. Lav også gerne en søgefunktion


Download ppt "Søgning & sortering Intro søgning Lineær søgning Binær søgning"

Lignende præsentationer


Annoncer fra Google