Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1.

Slides:



Advertisements
Verwante presentaties
Vincent Poté Nelis Vandermeiren Simen Akkermans Kevin De Neef
Advertisements

Les 2 klassediagrammen II
Objectgeoriënteerd Programmeren in C++
Digitale toetsen op afstand Bregatha de Gooijer
Visual Knowledge Building
Programmeren in Java met BlueJ
Algoritmen en Datastructuren (ALDAT)
Programmeren met Alice
OOS Object geOrienteerd Software-ontwerp - 3
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Hoofdstuk 8: Recursie.
Gestructureerd programmeren in C
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Van domeinklasse tot implementatie
PROS2 Les 11 Programmeren en Software Engineering 2.
Het ontwerpen van een klasse
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 5.
1 Tentamen 21 januari 2008 uitleg Algemene kennisvragen a)“Wat verstaan we onder de complexiteit van een algoritme?” –Cruciaal: wat gebeurt er met.
Hoofdstuk 6: Controle structuren
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
1 Datastructuren Lijstjes (Stacks & Queues) Onderwerp 7.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
De koektrommel of de grabbelton
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Ontwerpen van Informatiesystemen met
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Algoritmiek Arrays: wat zijn dat en wat kun je ermee? Loops: hoe hou je ze in bedwang? Hoorcollege 6 - Ma. 9 okt L.M. Bosveld-de Smet.
Normalisatie Relationeel databaseontwerp:
Inleidend probleem Data structuur (hiërarchie van classes)
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
Designing Knowledge Systems b Hoofdstuk 11 van Knowledge Engineering and Management. The CommonKADS Methodology. b A.Th. Schreiber, J.M. Akkermans, A.A.Anjewierder,
Logaritmen (heel eventjes)
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
Project OO-AD: Color Crazy Domien Nowicki, Bjorn Schobben.
Java en BlueJ Een goed idee?.
Algoritmiek Object-georiënteerd Programmeren
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 4.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Datastructuren Sorteren, zoeken en tijdsanalyse
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
Algoritme Inhoud: Definitie algoritme Recursieve algoritmes Opgaven
Project OO-AD: Color Crazy Domien Nowicki, Bjorn Schobben.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Polymorphisme en Interfaces: inleiding
Analyse 3 INFANL01-3 week 2 CMI Informatica.
Opvoeding en pedagogiek Bijeenkomst 1 Pascal van Schajik
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
TirPrs06: Wachttijdtheorie & simulatietechniek
Plancyclus, les 4  Actualiteit  Vragen naar aanleiding van vorige les  Vragen over hoofdstuk 4 en 5  Observeren met een plan; het verschil tussen observeren.
Welkom! maandag 16 November 2015 Les B-2.
EERDER….. Tabellen rij (record, tuple, occurence) kolom (attribuut, veld) tabel (relatie) tabelstructuur : patient(PAT#,PNAAM,LEEFTIJD,GESLACHT,ARTS)
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Datastructuren voor grafen Algoritmiek. 2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –…
Sway.
Objectgeoriënteerd Programmeren
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Lists en interfaces
Object georiënteerd programmeren
Gameprogrammeren: Interfaces
Slim tellen.
Slim tellen.
Software Development fundamentals
Transcript van de presentatie:

Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1

Hogeschool HZ Zeeland Waar gaat DSA over? Principes van een aantal verschillende datastructuren en algoritmen Toepassen van abstractie in het specificeren van datastructuren Eigenschappen van verschillende algoritmen in tijd en ruimte

Hogeschool HZ Zeeland Onderwerpen week 1: Introductie Datastructuren en algoritmiek Abstractie Analyse in tijd/ruimte

Hogeschool HZ Zeeland Introductie: Opbouw van de les Sandwich constructie: – 1e theorieuur: kennis – 2 practicum uren: opdrachten en/of zelfstudie – 2e theorieuur: feedback en/of verrijking theorie Toetsing: tentamen (100%)

Hogeschool HZ Zeeland Introductie: Planning Week 1 (Hst 1, 2): Introductie Week 2 (Hst. 3): Algoritmiek: sorting Week 3 (Hst 4): Stacks en Queues (abstractie) Week 4 (Hst. 5): Linked lists Week 5 (Hst. 6, 7): Algoritmiek: recursie Week 6 (Hst 8): binary trees, hash tables Week 7 : uitloop, tentamenvoorbereiding en vragen

Hogeschool HZ Zeeland Onderwerpen week 1: Introductie Datastructuren en algoritmiek – Wat zijn… – terminologie – gebruik Arrays als basis – werking – issues Abstractie Analyse in tijd/ruimte: Big-O notatie

Hogeschool HZ Zeeland Definities Wat is een datastructuur An arrangement of data in a computer’s memory (boek) Wat is een algoritme Algorithms manipulate the data in these structures in various ways (boek)

Hogeschool HZ Zeeland Datastructuren in de ‘echte wereld’ Kaartenbak Eigenschappen: – Bak met kaarten is structuur – Wat er op de kaarten staat is de data – (Hoe) zijn de kaarten geordend? – Kunnen/mogen er dubbele kaarten voorkomen? – Hoe snel kan ik invoegen, verwijderen of zoeken?

Hogeschool HZ Zeeland Voorbeelden van algoritmen Invoegen van elementen Zoeken naar een specifiek element Verwijderen van een element Door alle elementen itereren (=‘wandelen’) Sorteren van alle elementen op een bepaalde volgorde

Hogeschool HZ Zeeland Terminologie Database – De inhoud van alle elementen in een datastructuur – In een kaartenbak vormen alle kaarten samen een database Records – Eenheden waarin een database is ingedeeld – Kaartenbak: een record is dus één enkele kaart Field – Een record bestaat uit één of meerdere fields. Een field bevat een specifieke soort data – Voorbeeld: van een adressenbestand een field met het telefoonnummer Key – Om een bepaald record te zoeken wordt één van de velden aangewezen als key – Een key ‘unlocks’ een record – Dit zou voor een andere zoekopdracht weer een ander veld kunnen zijn – Voorbeeld: adressenbestand, zoeken naar een bepaalde naam of een postcode

Hogeschool HZ Zeeland Arrays: een demonstratie

Hogeschool HZ Zeeland Duplicates issue Zijn keys altijd uniek? Wat heeft dat voor invloed op de bewerkingen op een datastructuur?

Hogeschool HZ Zeeland Onderwerpen week 1: Introductie Datastructuren en algoritmiek Abstractie – Wat is abstractie – Waarom passen we het toe? – Hoe ziet het er uit? Analyse in tijd/ruimte

Hogeschool HZ Zeeland Abstraction: Wat is dat? Het scheiden van het wat van het hoe Wat geeft aan wat een datastructuur (eigenlijk elke class) moet doen (=interface) Hoe geeft aan hoe dat uitgevoerd wordt (=implementatie)

Hogeschool HZ Zeeland Abstraction: Waarom? Ontwerp: de vorm/indeling van een programma kan gedefinieerd worden zonder dat er nagedacht hoeft te worden over de implementatie Implementatie: uitwisselbaarheid van verschillende implementaties van een klasse eenvoudig

Hogeschool HZ Zeeland Abstraction: hoe ziet dat er uit? In een class in een (object georiënteerd) programma wordt het wat gedefinieerd door ‘alles wat public’ is (daarmee spreek je namelijk die bepaalde class aan). Alleen de definitie van de public methodes geven het wat aan. De implementatie van de methodes (code binnen de methodes) geven het hoe aan. Het wat wordt ook wel interface genoemd Niet verwarren met interface keyword in java (hoewel deze wel met elkaar te maken hebben)

Hogeschool HZ Zeeland Onderwerpen week 1: Introductie Datastructuren en algoritmiek Abstractie Analyse in tijd/ruimte – Waarom vergelijken we? – Wat en hoe kunnen we vergelijken? – De Big-O notatie

Hogeschool HZ Zeeland Eigenschappen van algoritmen in cijfers Verschillende datastructuren en algoritmen voor dezelfde bewerking  vergelijken Wat is interessant om te vergelijken: hoe snel loopt een algoritme. Hoe kunnen we dit vergelijken? – Tijdmeting – Theoretische analyse Tijdmeting onpraktisch, door verschil in systemen Theoretische analyse  Big-O notatie

Hogeschool HZ Zeeland Big-O notatie Definite: – De big-O notatie geeft een manier om een idee te krijgen van de performance (=snelheid) van algoritmen om zo deze met elkaar te kunnen vergelijken, zonder dat de snelheid van de machine van invloed is. Geeft een ‘cijfer’ voor de performance voor een bepaald algoritme Dit is hardware-onafhankelijk Is wel afhankelijk van aantal elementen in de datastructuur Berekening gaat uit van worst-case scenario

Hogeschool HZ Zeeland Voorbeeld: verwijderen element uit array 1 Een array met 100 elementen We willen het eerste element verwijderen Bewerking: – Stap 1: Haal element 0 uit array – Stap 2: Verplaats element 1 naar plaats 0 – Stap 3…100: herhaal stap 2 voor element 2, etc. Resultaat: om element te verwijderen zijn 100 stappen nodig!

Hogeschool HZ Zeeland Voorbeeld: verwijderen element uit array 2 De procestijd is uit te drukken in: T = K * N Hierin is: – T: tijd waarin algoritme is uitgevoerd – N: aantal elementen uit de datastructuur – K: een ‘machine’-afhankelijke factor

Hogeschool HZ Zeeland Voorbeeld: verwijderen element uit array 3 Om algoritmen met elkaar te vergelijken is de constante K niet nodig. Dit is de Big-O notatie Te noteren als: O(N)

Hogeschool HZ Zeeland Opdrachten: Bepaal uit tabel 1.1 (blz. 11/12) van de volgende datastructuren WAAROM de genoemde voor- en nadelen gelden: – Array, ordered array, linked list, binary tree en hash table Ken tevens getallen toe aan genoemde eigenschappen (in Big-O notatie) Ga na waar de factor K uit (kan) bestaan. Welke factoren bepalen de factor K

Hogeschool HZ Zeeland Demo-programma: interface Plist1: public void insertPerson (Person p) public Person findPerson (String lastName) public Person deletePerson(String lastName) public Plist1(int tableSize)

Hogeschool HZ Zeeland Einde…