Basale forudsætninger. Sortering ved fletning med tre bånd, i to faser.
|
|
- Kjeld Andreasen
- 7 år siden
- Visninger:
Transkript
1 25 Sortering III. Basale forudsætninger. Sortering ved fletning med tre bånd, i to faser. Sortering ved fletning, med fire bånd, i én fase (balanceret fletning). Polyfase fletning med tre bånd. Generaliseret polyfase fletning. I de to forrige forelæsninger om sortering har vi set på intern sortering, altså sortering som udelukkende foregår ved databehandling i det primære lager af maskinen. Når store datamængder på eksterne lagre, typisk magnetbånd, skal sorteres, må vi ty til andre sorteringsteknikker. Vi taler i sådanne tilfælde om ekstern sortering. Med dagens teknologi, først og fremmest arbejdslagre på mange megabytes (og virtuelle arbejdslagre på endnu flere megabytes), er ekstern sortering ikke helt så vigtig, som det før har været tilfældet. På trods af dette vil vi i denne forelæsning give et overblik over eksterne sorteringsteknikker. Dette hører med til en sømmelig datalogisk opdragelse, og der er mange spændende teknikker involveret, som er et nærmere bekendtskab værdig. 363
2 Basale forudsætninger. Data læses og skrives strengt sekventielt. Operationer i en abstrakt datatype SEKVENS: Read_next_object: Object Write_next_object (obj: Object) Rewind I de to tidligere forelæsninger om sortering har vi antaget, at sorteringen forløb på instanser af en abstrakt datatype LIST. Vi har også antaget, at der er et forholdsvis righoldigt repertoire af effektive operationer i LIST, f.eks. aflæsning og skrivning af i-te element i listen. Som omtalt er LIST typisk baseret på arrays, når vi taler intern sortering. I denne forelæsning vil vi på en meget radikal måde indsnævre operationerne på lister. I stedet for lister vil vi tale om SEKVENS. Som nævnt ovenfor vil vi kun forudsætte tre forskellige operationer i denne datatype: Læs objekt, skriv næste objekt, og positioner sekvensen i starttilstand. Vi har tidligere i forelæsningen om "filer og indekser" stiftet bekendtskab en sådan datatype. Som en yderligere begrænsning vil vi antage, at skrivning umuliggør efterfølgende læsning, medmindre sekvensen først er repositioneret til starttilstand. Vi har tidligere i noterne vedtaget at tale om poster på en fil, i stedet for objekter eller records. I dette kapitel vil vi dog tillade os tale om objekter repræsenteret på en fil. 364
3 Sortering ved fletning med tre bånd i to faser (1). Givet: S = (O1 O2... On) på bånd. Endvidere givet to andre bånd. Metode: 1. Fordel objekterne ligeligt på bånd 2 og bånd Flet objekterne fra bånd 2 og 3 til sorterede delsekvenser af dobbelt længde på bånd Gentag ovenstående to trin indtil bånd 1 er sorteret. Bånd 1 Fordeling Bånd 2 Fletning Bånd 3 Vi vil her og i det følgende tale om bånd, hvorpå vi antager at sekvenser af data er repræsenterede. Man kan naturligvis tænke på bånd som magnetbånd. For hvert bånd der opereres på er vi selvfølgelig nødt til at have en magnetbåndstation. I praksis er antallet af stationer den begrænsede ressource. Den her skitserde sorteringsteknik bør sammenlignes med sortering ved fletning, som vi studerede sidste gang (se forelæsningen "sortering 2"). Merge-sort er en top-down realisering af ideen om sortering ved fletning, som kan beskrives elegant ved brug af rekursion. Merge-sort er dog ikke, som formuleret i forrige forelæsning, rettet mod en praktisk situation, hvor vi har et fast antal mangnetbåndsstationer tilrådighed. Formuleringen af sortering ved fletning, som skitseret på denne slide, er en iterativ, praktisk anlagt (rettet mod sortering på ydre, sekventielle medier), bottom-up formulering af sorteringsidéen. 365
4 Sortering ved fletning med tre bånd i to faser (2). Sortering af n objekter. Antal fordelingsfaser og fletningsfaser: log n 2 Antal læse+skriveoperationer: 2n log n 2 Svagheder: Små sorterede sekvenser i begyndelsen af processen. For mange unyttige kopieringsoperationer. Eksempel: Sortering af n = 2 = objekter log n = 17 faser. 2 2n log n = læse+skriveoperationer I regnestykket på denne side betegner en læse+skriveoperation én læseoperation efterfulgt af én skrive operation. Den næste eksterne sorteringsmetode, vi vil studere, har løsninger på de to svagheder, vi har identificeret på denne slide. Bemærk dog, at vi går fra 3 til minimum 4 bånd(stationer). Det er imidlertid under visse omstændigheder muligt at optimalisere sorteringen, som vist på forrige slide, uden at kræve et ekstra bånd. Dette vender vi tilbage til senere i denne forelæsning under den såkaldte polyfasesortering. 366
5 Sortering ved fletning med fire bånd i én fase (1). Givet: S = (O1 O2... On) på et bånd, samt tre andre bånd. Metode: 1. Etabler sorterede "runs" ( ved intern sortering), og fordel disse runs ligeligt på bånd 1 og Flet to runs fra bånd 1 og 2, og fordel skiftevis disse på bånd 3 og Gentag trin 2, med alternerende rollefordeling (kilde/mål) af båndene. R1 R3 R5 Bånd 1 Fletning & Fordeling Bånd 3 R1 R2 R5 R6 Flet & Fordel R2 R4 R6 R7 Bånd 2 Bånd 4 R3 R4 R7 Soreringsteknikken på denne slide er kendt som "balanceret tovejs fletning". Ved at benytte intern sortering af delsekvenser fra bånd opnår vi, at den eksterne sorteringsproces starter med sorterede "runs" af en betydelig længde. Dette er klart en stor forbedring i forhold til den første metode, vi studerede, idet vi antager, at intern sortering er meget mere effektiv end ekstern sortering. Vi antager at alle runs er ca. lige lange i begyndelsen. Dette er ikke en nødvendig antagelse. Vi antager også at ca. halvdelen af runs initialt placeres på bånd 1, og den anden halvdel på bånd 2. Som vi vil se under polyfase sortering, er den ligelige fordeling af runs ikke altid den bedste antagelse. Ved at benytte fire bånd kan vi slå flette og fordelingsprocessen sammen. Når vi fletter to runs skriver vi skiftevis det resulterende run ud på bånd 3 og 4. Efter hver gennemført flet-og-fordel proces har vi runs af den dobbelte længde i forhold til den forrige situation (modulo de runs, som ikke kan flettes, fordi de ikke har en "partner"). I stedet for at tale om konkrete bånd, kunne vi tale om et par af kilde-bånd og et par af mål-bånd. Efter en endt flet-og-fordel proces skifter kilde- og mål-bånd roller. Vi har ikke på denne slide gjort rede for, hvornår bånd skal "rewindes". Det er dog helt oplagt, hvornår dette skal ske. Den eksterne sorteringsteknik kan generaliseres til anvendelse af flere end 4 bånd (og båndstationer). Antag vi har X + Y bånd og -stationern (X >= 2, Y >= 2), hvor vi i begyndelsen har sekvenser af sorterede runs på X kilde-bånd. Disse flettes og fordeles nu til de Y målbånd, og processen fortsætter. Hvis vi antager at X = Y skal vi gennemløbe logx(r) faser, hvor R er antallet af initiale runs, og hvor logx er X-tals logaritmen. 367
6 Sortering ved fletning med fire bånd i én fase (2). Sortering af n objekter, med r initiale runs. Antal splitfaser og fletfaser: log r 2 Antal læse/skrive-operationer: n log r 2 Eksempel: Sortering af n = 2 17 = objekter Intern sortering, som resulterer i 512 initiale runs á 256 objekter. log 512 = 9 faser 2 9n = læse+skrive operationer. I regnestykket på denne slide har vi ikke medtaget bidraget fra intern sortering, samt læse/skrive operationerne omkring denne. 368
7 Polyfasesortering med tre bånd (1). Givet: S = (O1 O2... On) på bånd 1 samt to andre bånd. Metode: 1. Etabler r (r et Fibonacci tal ) sorterede "runs" ( ved intern sortering), og fordel disse runs i Fibonacci forhold på to kilde-bånd. 2. Flet par af runs fra de to kilde-bånd, og udskriv dem på mål-båndet. Forsæt med fletningen indtil ét af kilde-båndene ikke indeholder flere runs. 3. Målbåndet spoles tilbage, og bliver kildebånd i næste fase. Det kilde-bånd, som blev tømt, spoles tibage og bliver målbånd i næste fase. Det kilde-bånd, som ikke blev tømt, forbliver kildebånd i næste fase. 4. Iterér punkterne 2 og 3 indtil mål-båndet indeholder ét run med alle objekter, som nu er sorteret. De to kildebånd bliver aldrig tømt samtidigt under polyfasesortering. Når r er Fibonaccitallet Fi, og i >= 2, da kan vi opskrive r som Fi-1 + Fi-2. F1 = 1, og F0 = 0. Det omtalte Fibonacci forhold i trin 1 af algoritmen er forholdet Fi-1/Fi-2. I trin 2 er vi interesserede i, at kun ét bånd løber tør for runs i hver fase. Dette sikres netop af, at vi arbejder med fordelinger efter Fibonacci tal. Bemærk, at vi ved polyfase sortering bliver nødt til at være omhyggelig med at fortælle, hvornår bånd skal spoles tilbage. Ligesom i den forrigt beskrevne sorteringsteknik benytter polyfase fletningen på denne slide initialt sorterede runs. I litteraturen bliver der brugt en del kræfter på at "vride" eksisterende, interne sorteringsalgoritmer, således at de rent faktisk kan anvendes til at sortere flere data, end der kan rummes i arbejdslageret. Dette er beskrevet i afsnit i Weiss, og vi er motiverede for at se lidt på dette, idet det giver os endnu en anvendelse af minimum-hobe. Næste slide viser skematisk, hvordan polyfase sortering forløber i termer af antal runs, og længden af runs. 369
8 Polyfasesortering med tre bånd (2). i, i, i 3 runs, af relativ længde i. Fase Bånd 1 Bånd 2 Bånd , 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, , 1, 1 2, 2, 2, 2, , 3, 3 2, , Denne slide illustrerer, hvordan polyfase sortering forløber i tilfældet, hvor de to kilde-bånd hhv. indeholder 5 og 8 runs. Der er ingen begrænsning på længden af de initiale runs. Disse kan indeholde f.eks. 1 objekt, 1000 objeker, eller 7346 objekter hver. Vi kan endog benytte runs med 0 objekter. Det kan være nyttigt at inddrage et antal runs af længde 0, hvis ikke det initiale antal runs er et Fibonacci tal. Hvis vi således starter med R "lange" runs (som stammer fra intern sortering) vil vil inddrag S tomme runs (S >= 0) således at S + R er et Fibonacci tal. Det er vigtigt at observere, at ikke alle objekter bliver behandlet i hver af faserne. Pointen i teknikken er jo netop, at I hver fase er der en rest af runs, som kommer til at indgå i næste fase. 370
9 Polyfasesortering med tre bånd (3). Sortering af n objekter, med r initiale runs. Antal splitfaser og fletfaser: ln r (asymptotisk værdi). Antal læse/skrive-operationer: n * ( ln r ) (asymptotisk værdi). Eksempel: Sortering af n = objekter. Intern sortering, som resulterer i r = 512 initiale runs á 256 objekter ln r = 14 faser n * ( ln r ) = læse+skrive operationer. Formlerne på denne slide stammer fra Knuth. Vi udleder ikke disse formler på dette kursus. Formlen for antallet af faser giver et korrekt result, anvendt på r = 512, idet det 13. Fibonacci tal er 377, og det 14. er 610. Hvis vi sammenligner det totale antal læse+skriveoperationer med de tidligere resultater kan vi se, at det står sig pænt i sammenligning med den allerførste, naive teknik, som vi studerede. I forhold til sortering med 4 bånd, kan vi næsten gøre det lige så godt med 3-bånds polyfasesortering. 371
10 Generaliseret polyfasesortering. Polyfase sortering med 3 bånd kan umiddelbart generaliseres til T > 3 bånd: I hver fase har vi T-1 kildebånd og ét målbånd. Den nødvendige initiale fordeling kan beskrives af generaliserede Fibonacci tal. Eksempler på initiale fordelinger: T = 7, 6 bånd flettes Sum T = 6, 5 bånd flettes Sum I eksemplerne forneden angiver hver række af tal fordelinger af runs. Fordelingerne er frembrag med det formål for øje, at kun netop ét bånd må blive tomt i hver fase. Man kan relativt let indse, at én række fremkommer fra den forrige ved at flytte første tal hen som det sidste tal i næste række, samt ved at addere første tal til hvert af de efterfølgende, og forskyde resultatet én plads til venstre i næste række (prøv efter!) De generaliserede Fibonacci tal af orden hhv. 5 og 4 forekommer i 1. søjle af tabellerne. Fibonacci tal af orden n fremkommer ved at addere de n+1 tidligere tal for at få det næste. Følgen starter med ét 1-tal, og resten 0'er. De kursiverede summer af rækker angiver totale antal af runs, som kan fordeles således at optimale polyfase fletteprocesser kan finde sted (med hhv. 7 bånd og 6 bånd). 372
Sortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
Læs mereSortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
Læs mereSortering af information er en fundamental og central opgave.
Sortering Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,
Læs mereSortering af information er en fundamental og central opgave.
Sortering 1 / 36 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,
Læs mere18 Multivejstræer og B-træer.
18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.
Læs mereMålet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer
Læs mere22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.
22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327
Læs mereMålet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål
Læs mere26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.
26 Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler. Hvad er programverifikation? Bevisregel for 'tom kommando'. Bevisregel for assignment. Bevisregler for selektive
Læs mere28 Algoritmedesign. Noter. PS1 -- Algoritmedesign
28 Algoritmedesign. Algoritmeskabelon for Del og Hersk. Eksempler på Del og Hersk algoritmer. Binær søgning i et ordnet array. Sortering ved fletning og Quicksort. Maksimal delsums problem. Tætteste par
Læs mereSortering. De n tal i sorteret orden. Eksempel: Kommentarer:
Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus
Læs mereTilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.
Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang (API =
Læs mereTilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.
Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer. API for sekventiel tilgang (API = Application
Læs mereSøgning og Sortering. Philip Bille
Søgning og Sortering Philip Bille Plan Søgning Linæer søgning Binær søgning Sortering Indsættelsesortering Flettesortering Søgning Søgning 1 4 7 12 16 18 25 28 31 33 36 42 45 47 50 1 2 3 4 5 6 7 8 9 10
Læs mere19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.
19 Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. Sammenligning af hashtabeller og søgetræer. 281 Hashing-problemet (1). Vi ønsker at afbilde n objekter på en tabel
Læs mereBRP Sortering og søgning. Hægtede lister
BRP 18.10.2006 Sortering og søgning. Hægtede lister 1. Opgaver 2. Selection sort (udvælgelsessortering) 3. Kompleksitetsanalyse 4. Merge sort (flettesortering) 5. Binær søgning 6. Hægtede lister 7. Øvelser:
Læs mereGrundlæggende køretidsanalyse af algoritmer
Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers
Læs mere3 Algebraisk Specifikation af Abstrakte Datatyper.
3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning
Læs mereRekursion C#-version
Note til Programmeringsteknologi Akademiuddannn i Informationsteknologi Rekursion C#-version Finn Nordbjerg 1 Rekursion Rekursionsbegrebet bygger på, at man beskriver noget ved "sig selv". Fx. kan tallet
Læs mereRolf Fagerberg. Forår 2015
Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software Engineering BA i Matematik-Økonomi BA i Anvendt Matematik BA
Læs mereSøgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning
Søgning og Sortering Søgning og Sortering Philip Bille Søgning. Givet en sorteret tabel A og et tal x, afgør om der findes indgang i, så A[i] = x. Sorteret tabel. En tabel A[0..n-1] er sorteret hvis A[0]
Læs mereSortering. Sortering ved fletning (merge-sort) Del-og-hersk. Merge-sort
Sortering Sortering ved fletning (merge-sort) 7 2 9 4! 2 4 7 9 7 2! 2 7 9 4! 4 9 7! 7 2! 2 9! 9 4! 4 1 2 Del-og-hersk Merge-sort Del-og-hersk er et generelt paradigme til algoritmedesign Del: opdel input-data
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl
Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Mandag den. marts 00, kl..00 11.00 Navn Gerth Stølting Brodal Årskort 1 Dette eksamenssæt består af en kombination
Læs mereDanmarks Tekniske Universitet
Eksamen 005, F0 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 00. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.
Læs mereGeometrisk skæring. Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter
Planfejning 1 Skæring 2 Geometrisk skæring Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter Løsningsmetoder: Rå kraft Planfejning (eng. plane sweep)
Læs mereRolf Fagerberg. Forår 2015
Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software
Læs mereRolf Fagerberg. Forår 2014
Forår 2014 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: Format: Programmering og Diskret matematik I (forelæsninger), TE (øvelser), S (arbejde selv og i studiegrupper) Eksamenform: Skriftlig
Læs mere1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer
1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer på disse. Typer af lister: Array Enkelt linket liste Dobbelt linket Cirkulære lister Typer af køer: FILO FIFO
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning
Læs mereDanmarks Tekniske Universitet
Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det
Læs mereInduktive og rekursive definitioner
Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal
Læs mereDanmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Læs mereDanmarks Tekniske Universitet
Eksamen 0205, Forår 205 side af 5 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 205. Kursusnavn: Algoritmer og datastrukturer Kursusnummer: 0205 Hjælpemidler: Skriftlige hjælpemidler. Det
Læs mereSortering ved fletning (merge-sort)
Sortering 1 Sortering ved fletning (merge-sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 2 Del-og-hersk Del-og-hersk er et generelt paradigme til algoritmedesign Del: opdel input-data S i to disjunkte
Læs mereDanmarks Tekniske Universitet
side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.
Læs mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af
Læs mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 26. maj 2009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning
Læs mereChapter 7: Transport-, assignment- & transshipmentproblemer
Chapter 7: Transport-, assignment- & transshipmentproblemer 1) Formulering af de 3 problemtyper 2) Algoritme for det balancerede transportproblem 3) Algoritme for assignmentproblemet Samtlige 3 problemtyper
Læs mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:
Læs merePrioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer
Philip Bille. Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX(): returner og fjern
Læs mereExcel tutorial om indekstal og samfundsfag 2008
Excel tutorial om indekstal og samfundsfag 2008 I denne note skal vi behandle data fra CD-rommen Samfundsstatistik 2008, som indeholder en mængde data, som er relevant i samfundsfag. Vi skal specielt analysere
Læs merePrioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille
Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering Philip Bille Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer
Læs mereMerging og Hashing (del I)
Merging og Hashing (del I) Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang
Læs mereOpgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )?
Eksamen juni Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) I det følgende angiver log n -tals-logaritmen af n. n+n er O(n)? n 6 er O(n )? nlogn er O(n /logn)? n er O(n )? n er O(n )?
Læs merePrioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer
Philip Bille (priority-queues). Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX():
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 (tolv) Eksamensdag: Fredag den 7. august 009, kl.
Læs mereGrådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for
Læs mereProjektopgave Observationer af stjerneskælv
Projektopgave Observationer af stjerneskælv Af: Mathias Brønd Christensen (20073504), Kristian Jerslev (20072494), Kristian Mads Egeris Nielsen (20072868) Indhold Formål...3 Teori...3 Hvorfor opstår der
Læs mereDM517:Supplerende noter om uafgørlighedsbeviser:
DM517:Supplerende noter om uafgørlighedsbeviser: Jørgen Bang-Jensen October 9, 2013 Abstract Formålet med denne note er at give en form for kogebogsopskrift på, hvorledes man bygger et uafgørlighedsbevis
Læs mereMartin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox
Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...
Læs mereMark Jeays simple solution to the Rubik s cube oversat og redigeret af Jess Bonde. -
Mark Jeays simple solution to the Rubik s cube oversat og redigeret af Jess Bonde. jess@rubiks.dk - http://www.rubiks.dk Trin 0 Introduktion & notation Trin 1 De tre øverste sidestykker Trin 2 Hjørner
Læs mereSøgning og Sortering. Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering. Philip Bille
Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering Philip Bille Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering
Læs mereDanmarks Tekniske Universitet
side af 3 sider anmarks Tekniske Universitet Skriftlig prøve, den 29. maj 203. ursusnavn: lgoritmer og datastrukturer ursus nr. 02326. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe
Læs mere4. Snittets kædebrøksfremstilling og dets konvergenter
Dette er den fjerde af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 4. Snittets kædebrøksfremstilling og dets konvergenter Vi
Læs mereTALTEORI Følger og den kinesiske restklassesætning.
Følger og den kinesiske restklassesætning, december 2006, Kirsten Rosenkilde 1 TALTEORI Følger og den kinesiske restklassesætning Disse noter forudsætter et grundlæggende kendskab til talteori som man
Læs mereDanmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 0205. Varighed: 4 timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.
Eksamen august Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n + n er O(n )? n / er O(n / )? n er O(n log n)? n er O((log n) )? n er Ω(n )? Ja Nej Opgave (%) Opskriv følgende funktioner
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer
Læs mereRolf Fagerberg. Forår 2012
Forår 2012 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM502 og DM503 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM502 og DM503 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,
Læs mereOm at udregne enkeltstående hexadecimaler i tallet pi
Om at udregne enkeltstående hexadecimaler i tallet pi I 996 var det en sensation, da det kom frem, at det var lykkedes D. Bailey, P. Borwein og S. Plouffe at finde en formel for tallet π, med hvilken man
Læs mereAnalyse af algoritmer
Analyse af algoritmer Analyse af algoritmer Køretid Pladsforbrug Asymptotisk notation O, Θ og Ω-notation. Eksperimentiel analyse af algoritmer Philip Bille Analyse af algoritmer Analyse af algoritmer Køretid
Læs mereDatastrukturer (recap)
Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang
Læs mereKursusbeskrivelse. Forarbejde. Oprettelse af en Access-database
Kursusbeskrivelse Oprettelse af en Access-database Som eksempel på en Access-database oprettes en simpelt system til administration af kurser. Access-databasen skal indeholde: et instruktørkartotek et
Læs mereAlgoritmer og Datastrukturer 1. Gerth Stølting Brodal Aarhus Universitet
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet Kursusbeskrivelsen Kursusbeskrivelsen: Algoritmer og datastrukturer 1 Formål Deltagerne vil efter kurset have indsigt i algoritmer
Læs mereIntroduktion til DM507
Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA
Læs mereSkriftlig Eksamen DM507 Algoritmer og Datastrukturer
Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se
Læs mereAlgoritmeskabeloner: Sweep- og søgealgoritmer C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte
Læs mereIntroduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010
Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Computere er uvurderlige redskaber for personer der ønsker at arbejde med matematiske modeller
Læs mereLEKTION 4 MODSPILSREGLER
LEKTION 4 MODSPILSREGLER Udover at have visse fastsatte regler med hensyn til udspil, må man også se på andre forhold, når man skal præstere et fornuftigt modspil. Netop modspillet bliver af de fleste
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mere14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer.
14 Algoritmeanalyse. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. O og Ω. Køretid for forskellige kontrolstrukturer. Eksempler på algoritmeanalyse. Eksponentiel og polynomiel
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET
DTLOS NSTTUT, RUS UNVERSTET Det Naturvidenskabelige akultet ESMEN rundkurser i Datalogi ntal sider i opgavesættet (incl. forsiden): 7 (syv) Eksamensdag: Torsdag den 14. juni 007, kl. 9.00-1.00 Eksamenslokale:
Læs mereRolf Fagerberg. Forår 2013
Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,
Læs mereGuide til Umbraco CMS
web Guide til Umbraco CMS Indhold Indledning 3 Kompatible browsere 3 Log ind i Umbraco 4 Content-delen 5 Indholdstræet 5 Tilføjelse af en side/sektion 7 Sortering af indhold 12 Galleri 14 Mediebibliotek
Læs mereDRONNINGER (QUEENS) Opgave 1
DRONNINGER (QUEENS) I denne opgave vil vi beskæftige os med det såkaldte 8-dronningeproblem, hvor man skal placerede 8 dronninger på et 8 x 8 skakbræt, således at ingen af dronningerne kan slå hinanden.
Læs mereSkriftlig Eksamen DM507 Algoritmer og Datastrukturer
Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se
Læs mereDM507 Eksamen Obligatorisk Opgave Rejseplanlægning
Institut for Matematik og Datalogi Syddansk Universitet, Odense 21. februar 2011 LMF DM507 Eksamen Obligatorisk Opgave Rejseplanlægning 1 Problemet Denne opgave går ud på at lave et program, som ud fra
Læs mereSkriftlig eksamen i samfundsfag
OpenSamf Skriftlig eksamen i samfundsfag Indholdsfortegnelse 1. Introduktion 2. Præcise nedslag 3. Beregninger 3.1. Hvad kan absolutte tal være? 3.2. Procentvis ændring (vækst) 3.2.1 Tolkning af egne beregninger
Læs mereAffaldsanalyse Småt brændbart Randers
Affaldsanalyse Småt brændbart Randers Del 1 Rapport udarbejdet for Randers Kommune Econet AS, Claus Petersen 6. maj 2011 Projekt nr.: A418 Indhold 1 INDLEDNING 1 1.1 FORMÅL 1 1.2 LOKALISERING 1 1.3 SORTERINGSKRITERIER
Læs mereGrundlæggende Algoritmer og Datastrukturer
Grundlæggende Algoritmer og Datastrukturer Om kurset Grundlæggende Algoritmer og Datastrukturer Undervisningsformer Forelæsninger: 4 timer/uge (2+2). Øvelser: 3 timer/uge. Café. Obligatorisk program 13
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereEuklids algoritme og kædebrøker
Euklids algoritme og kædebrøker Michael Knudsen I denne note vil vi med Z, Q og R betegne mængden af henholdsvis de hele, de rationale og de reelle tal. Altså er { m } Z = {..., 2,, 0,, 2,...} og Q = n
Læs mereAlgoritmer og Datastrukturer 1. Gerth Stølting Brodal
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Kursusbeskrivelsen Kursusbeskrivelsen: Algoritmer og datastrukturer 1 Formål Deltagerne vil efter kurset have indsigt i algoritmer som model for sekventielle
Læs merePrioritetskøer og hobe. Philip Bille
Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af
Læs merePeriodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum
Jørgen Erichsen Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum I artikelserien Studier på grundlag af programmet SKALAGENERATOREN kommer jeg bl.a. ind på begrebet
Læs mereOpgave: BOW Bowling. Rules of Bowling. danish. BOI 2015, dag 1. Tilgængelig hukommelse: 256 MB. 30.04.2015
Opgave: BOW Bowling danish BOI 0, dag. Tilgængelig hukommelse: 6 MB. 30.04.0 Byteasar er fan af både bowling og statistik. Han har nedskrevet resultaterne af et par tidligere bowling spil. Desværre er
Læs mereAppendiks 6: Universet som en matematisk struktur
Appendiks 6: Universet som en matematisk struktur En matematisk struktur er et meget abstrakt dyr, der kan defineres på følgende måde: En mængde, S, af elementer {s 1, s 2,,s n }, mellem hvilke der findes
Læs mereAsymptotisk analyse af algoritmers køretider
Asymptotisk analyse af algoritmers køretider Analyse af køretid Recall: Vi ønsker at vurdere (analysere) algoritmer på forhånd inden vi bruger lang tid på at implementere dem. De to primære spørgsmål:
Læs mereDATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Torsdag den 26. marts 2009, kl.
Læs mereEksamensopgaver datalogi, dlc 2011 side 1/5. 1. Lodtrækningssystem
Eksamensopgaver datalogi, dlc 2011 side 1/5 1. Lodtrækningssystem Der skal fremstilles et program, som kan foretage en lodtrækning. Programmet skal kunne udtrække en eller flere personer (eller andet)
Læs mereStatistik i basketball
En note til opgaveskrivning jerome@falconbasket.dk 4. marts 200 Indledning I Falcon og andre klubber er der en del gymnasieelever, der på et tidspunkt i løbet af deres gymnasietid skal skrive en større
Læs mere4 Basal Objekt-orienteret Programmering I.
4 Basal Objekt-orienteret Programmering I. Klasser i forhold til abstrakte datatyper og record-typer. Variable og operationer. Klasse-interfaces. Klasser og typer. Klasse-instantiering og initialisering.
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3
DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget
Læs mere3. Om skalamønstrene og den indfoldede orden
Dette er den tredje af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 3. Om skalamønstrene og den indfoldede orden Lad os begynde
Læs mereSyntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik
Datalogi C, RUC Forelæsning 22. november 2004 Henning Christiansen Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik Dagens program Hvad
Læs mere