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

Slides:



Advertisements
Lignende præsentationer
Velkommen til matematikkonference 7/3-13
Advertisements

1 • Best practice for exception handling • Exception klasser • Division med nul uden exception handling • Division med nul med exception handling •. NET.
1 Intro nedarvning (eng.: inheritance) Nedarvningshierarkier Intro polymorfisme (eng.: polymorphism) Abstract / virtual / override / sealed Intro interfaces.
1 Menuer (MenuStrip) MonthCalendar + DateTimePicker ListBox & CheckedListBox ComboBox Faneblade (eng.: tabs) med TabControl Steen Jensen, efterår 2013.
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
1 Filer - intro Data-hierarki Filer og strømme (eng.: streams) af bytes Klasserne File og Directory Oprettelse af sekventiel tekstfil Læsning af data fra.
1 Nordjyllands Erhvervakademi Lektion 6 Opsamling på opgaver Mere om rekursion: –Del&Hersk –Sortering –Kompleksitet (effektivitet – ”Store O”) Abstrakte.
Datastruktur & Algoritmik1 Datastruktur & Algoritmik 99 Kim Guldstrand Larsen.
Datastruktur & Algoritmik1 Sidste gang For j:=2 to len(A) do key:=A[j] (* indsæt key *) i:=j-1 while i>0 and A[i]>key do A[i+1]:=A[i] i-- A[i+1]:=key For.
Center for Undervisningsmidler Vejle Diagrammer % 1.
Begreber og Redskaber 8. Plan for idag Sortering fortsat Comparable Søgning –Lineær søgning –Binær søgning.
1 UNION-FIND. 2 inddata: en følge af heltalspar (p, q); betydning: p er “forbundet med” q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel.
MM4 Algoritmiske grundprincipper. MM1 Lister, stakke og køer. MM2 Hash-tabeller og Træer. MM3 Sortering.MM4 Søgning.MM5.
Induktion og rekursion
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Datastrukturer og Collections Rasmus D. Lehrmann DM
1 Bestanddele i en Windows form-løsning GUI kontroller (eng.: controls) & komponenter (eng.: components) Almindelige egenskaber, metoder & hændelser for.
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Intro til C# apps Kodegennemgang af simpel C# app
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
Lektion 7 Læsestof: Kopier fra Caranno
1 Design, analyse og verifikation. 2 Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær søgning Verifikation.
1 While Tæller-kontrolleret (eng.: counter-controlled) repetition For Steen Jensen, efterår 2013.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
FEN IntroJava AAU1 Loops og algoritmer Sweep – for-loop Søgning – while-loop.
Begreber og Redskaber 8. Plan for idag Sortering fortsat Comparable Søgning –Lineær søgning –Binær søgning.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal Aarhus Universitet.
Grundlæggende programmering Forår 2002
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7B.1 Søgning.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering7B.1 Søgning.
Variable og arrays Webintegrator HF1 PHP Object orienteret.
KAPITEL 7 Kreditrisiko.
Ventilation og indeklima
dagsorden Metoder i samfundsfag – hvorfor?
Gode råd om ansøgning til MUDP 2017
Forældre-information
Trigonometri som værktøj for problemløsninger ved geometri og måling
Mit liv - nu med DAT MIT LIV - nu med DAT.
Interaktion og usability
SOPU Sund – motion Kondition og kredsløb.
Analyse af miljøforhold
Forhandlingsteknik Strategi og proces Kommunikation Psykologi
Tema 5: Relationer og kommunikation Psykoedukation til patienter med emotionel ustabil personlighedsforstyrrelse.
Kort om Hjerteforeningen
Hvor går de unge hen, når de går ud?
Aarhus: Program - dag 1 - d. 17. januar
Det danske ejendomsmarked
FÆLLESSKAB, FREMDRIFT OG FORRETNING
Ea Thystrup & Louise Mikkelsen 3øa
Bevis for længdeformlen i rummet
Grundforskningscenteret “Glas & Tid”, Roskilde Universitet.
Fagligt samspil mellem matematik og samfundsfag
DK: Indledende: Jeg er jeres vært, og jeg har ansvaret for jer, mens I er her – og for, at I forlader bygningen igen, når vores møde er slut. I bedes derfor.
3d Billeddata (Side i artiklen: 2. Repræsentation og manipulation af Data)
August, Holm, Olsen, Tobias og Viktor
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Tilskud & Regnskab Kursus for nye efterskoleledere
Teknisk service på hoteller, konference - og feriecentre
יסודות מבני נתונים תרגול 9: שאלות חזרה.
21. november 2018 Ulla Nørskov Philip & Martin Stabell
Rullede deje.
Forløb med portfolioelementer
Algoritmer og Datastrukturer 1
Skrivedag 2: At skrive analyserende
Grundlæggende Algoritmer og Datastrukturer
Præsentationens transcript:

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

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

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

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

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

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

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.

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.

Merge sort (figur 18.10 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

Merge sort, 2

Oversigt over effektivitet for søge- & sorteringsalgoritmer

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

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