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

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

of 25

  • date post

    04-Jun-2015
  • Category

    Documents

  • view

    213
  • download

    1

Embed Size (px)

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

  • Dia 1
  • Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1
  • Dia 2
  • 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
  • Dia 3
  • Hogeschool HZ Zeeland Onderwerpen week 1: Introductie Datastructuren en algoritmiek Abstractie Analyse in tijd/ruimte
  • Dia 4
  • 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%)
  • Dia 5
  • 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
  • Dia 6
  • 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
  • Dia 7
  • Hogeschool HZ Zeeland Definities Wat is een datastructuur An arrangement of data in a computers memory (boek) Wat is een algoritme Algorithms manipulate the data in these structures in various ways (boek)
  • Dia 8
  • 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?
  • Dia 9
  • 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
  • Dia 10
  • 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
  • Dia 11
  • Hogeschool HZ Zeeland Arrays: een demonstratie
  • Dia 12
  • Hogeschool HZ Zeeland Duplicates issue Zijn keys altijd uniek? Wat heeft dat voor invloed op de bewerkingen op een datastructuur?
  • Dia 13
  • 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
  • Dia 14
  • 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)
  • Dia 15
  • 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
  • Dia 16
  • Hogeschool HZ Zeeland Abstraction: hoe ziet dat er uit? In een class in een (object georinteerd) 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)
  • Dia 17
  • 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
  • Dia 18
  • 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
  • Dia 19
  • 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
  • Dia 20
  • 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 3100: herhaal stap 2 voor element 2, etc. Resultaat: om element te verwijderen zijn 100 stappen nodig!
  • Dia 21
  • 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
  • Dia 22
  • 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)
  • Dia 23
  • 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
  • Dia 24
  • 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)
  • Dia 25
  • Hogeschool HZ Zeeland Einde