MM4 Algoritmiske grundprincipper. MM1 Lister, stakke og køer. MM2 Hash-tabeller og Træer. MM3 Sortering.MM4 Søgning.MM5.

Slides:



Advertisements
Lignende præsentationer
Dagens program Resumé - Normalfordelingen χ2-test (chi-i-anden)
Advertisements

Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
1 Rekursion og algoritmedesign. 2 Rekursion Rekursiv definition af X: X defineres i termer af sig selv. Rekursion er nyttig, når en generel version af.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal.
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.
Begreber og Redskaber 8. Plan for idag Sortering fortsat Comparable Søgning –Lineær søgning –Binær søgning.
Søgning & sortering Intro søgning Lineær søgning Binær søgning
Backup/Storage Søren Helmer Jensen.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal.
Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
1 Søgning I. 2 Plan Sekventiel søgning Binær søgning Binære søgetræer Balancerede binære søgetræer træer.
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
Anvendelser I Leg og spil.
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal Aarhus Universitet.
1 Algoritmik ved Keld Helsgaun. 2 Plan Algoritmebegrebet et simpelt eksempel Et eksempel på algoritmedesign.
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
1 PC baseret dataanalyse og simulering Week2 A. 2 SAS input/output filer Inddata -textfil - SAS-program -textfil- SAS datasæt SAS system SAS listing -print.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
Per P. Madsen- Proces1 Algoritmer og datastrukturer Grundprincipper og analyse af algoritmer. MM1 Lister, stakke og køer. MM2 Træer, og Hash-tabeller.
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
Ingeniørhøjskolen i Århus Slide 1 Newton approximation ”Oversæt” til algoritme - Step 5: Skriv kode - Step 4: Skriv pseudokode - Step 3: Specificér pre-
Grafalgoritmer II.
1 Sortering II. 2 Plan Avancerede sorteringsmetoder: Metoder med kompleksitet O(n logn): - Quicksort (ekskurs: udvælgelse) - Sortering ved fletning
Slide Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Algorithms for Query Processing and Optimization.
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.
1 Sortering. 2 Sortering ved fletning (merge-sort) 7 2 | 9 4  | 2  2 79 | 4   72  29  94  4.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Begreber og Redskaber 8. Plan for idag Sortering fortsat Comparable Søgning –Lineær søgning –Binær søgning.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal Aarhus Universitet.
1 Sortering. 2 Plan Elementære metoder til sortering -sortering ved indsættelse -Shellsort Sorteringsmetoder baseret på rekursion –quicksort –flettesortering.
Anvendelser I Leg og spil.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
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
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Søgning.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSøgning.2 Søgeproblemer... Søgning efter fil(er) Søgning i databaser.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering9B.1 Fletning.
Sortering.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.2 Sortering Vi hartidligere set at effektiv søgning forudsætter.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering7B.1 Søgning.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
I o p o DAIMI, AU, December 1999Introducerende objektorienteret programmering14B.1 Sortering.
DAIMIIntroducerende objektorienteret programmeringfletning.1 Fletning.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering7B.1 Søgning.
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Algoritmer og Datastrukturer 1
Grundlæggende Algoritmer og Datastrukturer
Grundlæggende Algoritmer og Datastrukturer
Præsentationens transcript:

MM4 Algoritmiske grundprincipper. MM1 Lister, stakke og køer. MM2 Hash-tabeller og Træer. MM3 Sortering.MM4 Søgning.MM5

Sortering Sorteringsalgoritmer : –Virkemåde og anvendelser –Kompleksitet –Algoritmen

Sorteringsalgoritmer Sortering af elementer i en bestemt orden. Anvendelser: Præsentation af data fx: direktorielisting, søgeresultat,.. Stavekontrol. Kartotekssystem. Bedre søgning. . Osv

Sorteringsalgoritme- typer: Comperison sort: –Insertion Sort. –Quicksort. –Merge Sort. Linear-time sort: –Counting Sort. –Radix Sort.

Insertion Sort Algoritme: i= 0; while(i<size) { Tage det i’te element. Placer det i’te element på den rigtigt plads i den sorterede del. i++; }

Insertion Sort Algoritme: i= 0; while(i<size) { Tage det i’te element. Placer det i’te element på den rigtigt plads i den sorterede del. i++; } 3 3

Insertion Sort Algoritme: i= 0; while(i<size) { Tage det i’te element. Placer det i’te element på den rigtigt plads i den sorterede del. i++; } 33 1

Insertion Sort Algoritme: i= 0; while(i<size) { Tage det i’te element. Placer det i’te element på den rigtigt plads i den sorterede del. i++; } Kompleksiteten: O(n*n)

Insertion Sort. Algoritme: i= 1; while(i<size) { Tage det i’te element; Placer det i’te element på den rigtigt plads mellem de ’i’ første elementer. i++; } In-space sort

Insertion Sort Algoritme: i= 1; while(i<size) { Tage det i’te element; Placer det i’te element på den rigtigt plads mellem de ’i’ første elementer. i++; } In-space sort. i= 1

Insertion Sort Algoritme: i= 1; while(i<size) { Tage det i’te element; Placer det i’te element på den rigtigt plads mellem de ’i’ første elementer. i++; } In-space sort. i= 2

Insertion Sort Algoritme: i= 1; while(i<size) { Tage det i’te element; Placer det i’te element på den rigtigt plads mellem de ’i’ første elementer. i++; } In-space sort. i= 3

Insertion Sort Algoritme: i= 1; while(i<size) { Tage det i’te element; Placer det i’te element på den rigtigt plads mellem de ’i’ første elementer. i++; } In-space sort. i= 4

Insertion Sort. Fordel: Simpel. In-place sort. Incremental sort. Stabil: Hvis R og S har samme key og R kommer før S i den originale liste, så kommer R før S i den sorterede liste. Ulemper: Kompleksiteten: O(n*n)

Insertion Sort. int issort(void *data, int size, int esize) { char *a = data; void *key; int i,j; if ((key = (char *)malloc(esize)) == NULL) return -1; for (j = 1; j < size; j++) { memcpy(key, &a[j * esize], esize); i = j - 1; while (i >= 0 && compare(&a[i * esize], key) > 0) { memcpy(&a[(i + 1) * esize], &a[i * esize], esize); i--; } memcpy(&a[(i + 1) * esize], key, esize); } free(key); return 0; }

Quicksort En divide-and-conquer algoritme Fremgangsmåde: 1.Del de enkelte data værdier i to omkring en udvalgt værdi. 2.Gør det samme for de to dele af data. Den udvalgt værdi udvælges tilfældigt, Evt med midian-of-three metoden.

judvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j)

judvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j)

judvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j)

judvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j)

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort ik Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort ik Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort ik Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort ik Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort i k Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

udvalgt værdi: Quicksort ik Så længe k > i { Find første elm(i) >= elm(j); Find første elm(k) <= elm(j); Opbyt (swap) elm(k) og elm(i); } elm(j) j

Quicksort. int qksort(int *data, int i, int k) { int j; if (i < k) { if ((j = partition(data, i, k)) < 0) return -1; if (qksort(data, i, j) < 0) return -1; if (qksort(data, j + 1, k) < 0) return -1; } return 0; }

Quicksort. static int partition(int *data, int int i, int k) { int *a = data; int pval, temp; int j; j= (rand() % (k - i + 1)) + i; pval= a[j]; i--; k++; while (1) { do { k--; } while (a[k] >= pval)); do { i++; } while (a[i] <= pval)); if (i >= k) break; else { temp= a[i]; a[i]= &a[k]; a[k]= temp; } return k; }

Quicksort. Fordel: In-place sort. Kompleksiteten: typisk: O(n*log(n)) Ulemper: Ikke stabil.

Merge Sort En divide-and-conquer algoritme, Ikke in-palce. Fremgangsmåde: 1.Del i to halvdele. 2.Gør det samme som her beskrevet for hver halvdel. 3.Saml de to halvdele i et sorteret datasæt.

Merge Sort

int mgsort(void *data, int size, int esize, int i, int k) { int j; if (i < k) { j = (int)(((i + k - 1)) / 2); if (mgsort(data, size, esize, i, j) < 0) return -1; if (mgsort(data, size, esize, j + 1, k) < 0) return -1; if (merge(data, esize, i, j, k) < 0) return -1; } return 0; } Merge Sort.

Fordel: Simpel. Kan anvendes til delsortering. Kompleksiteten: O(n*log(n)) Stabil Ulemper: Kræver ekstra lager.

Counting Sort Data: Counters: Temp: Trin 1: Tæl hvor mange gange de enkelte tal indgår i datasættet.

Counting Sort Data: Counters: Temp: Trin 2: Lad tallene i ’Counters’ angive hvor mange tal der til og med det pågældende tal

Counting Sort Data: Counters: Temp: Trin 3: for (j = size - 1; j >= 0; j--) { temp[counts[data[j]]-1] = data[j]; counters[data[j]] = counters[data[j]] - 1; }

Counting Sort Data: Counters: Temp: Trin 3: for (j = size - 1; j >= 0; j--) { temp[counts[data[j]]-1] = data[j]; counters[data[j]] = counters[data[j]] - 1; }

Counting Sort Data: Counters: Temp: Trin 3: for (j = size - 1; j >= 0; j--) { temp[counts[data[j]]-1] = data[j]; counters[data[j]] = counters[data[j]] - 1; }

Counting Sort Data: Counters: Temp: Trin 3: for (j = size - 1; j >= 0; j--) { temp[counters[data[j]]-1] = data[j]; counters[data[j]] = counters[data[j]] - 1; }

Counting Sort Data: Counters: Temp: Trin 3: for (j = size - 1; j >= 0; j--) { temp[counts[data[j]]-1] = data[j]; counters[data[j]] = counters[data[j]] - 1; }

Counting Sort Data: Counters: Temp: Trin 3: for (j = size - 1; j >= 0; j--) { temp[counts[data[j]]-1] = data[j]; counters[data[j]] = counters[data[j]] - 1; }

Counting Sort Data: Counters: Temp: Trin 3: for (j = size - 1; j >= 0; j--) { temp[counts[data[j]]-1] = data[j]; counters[data[j]] = counters[data[j]] - 1; }

Counting Sort Data: Counters: Temp: Trin 3: for (j = size - 1; j >= 0; j--) { temp[counts[data[j]]-1] = data[j]; counters[data[j]] = counters[data[j]] - 1; }

Counting Sort Data: Counters: Temp: Trin 3: for (j = size - 1; j >= 0; j--) { temp[counts[data[j]]-1] = data[j]; counters[data[j]] = counters[data[j]] - 1; }

Counting Sort. Fordel: Simpel. Kan anvendes til delsortering. Komptiksiteten: O(n + K) hvor K= max(Xn) +1; Stabil. Ulemper: Kan kun sortere hel tal. Skal kende det største tal.

Radix Sort. Anvendt til flere cifret tal fx Radix-10 til tal i Ti-tals systemet Fremgangsmåde: 1.Sorter efter mindst betydende ciffer. 2.Sorter efter 2. mindst betydende ciffer. 3.Sorter efter 3. mindst betydende ciffer n. Sorter efter mest betydende ciffer.

Radix Sort. Anvendt til flere cifret tal fx Radix-10 til tal i Ti-tals systemet Fremgangsmåde: 1.Sorter efter mindst betydende ciffer. 2.Sorter efter 2. mindst betydende ciffer. 3.Sorter efter 3. mindst betydende ciffer n. Sorter efter mest betydende ciffer.

Radix Sort. Anvendt til flere cifret tal fx Radix-10 til tal i Ti-tals systemet Fremgangsmåde: 1.Sorter efter mindst betydende ciffer. 2.Sorter efter 2. mindst betydende ciffer. 3.Sorter efter 3. mindst betydende ciffer n. Sorter efter mest betydende ciffer.

Radix Sort. Anvendt til flere cifret tal fx Radix-10 til tal i Ti-tals systemet Fremgangsmåde: 1.Sorter efter mindst betydende ciffer. 2.Sorter efter 2. mindst betydende ciffer. 3.Sorter efter 3. mindst betydende ciffer n. Sorter efter mest betydende ciffer.

Radix Sort. Anvendt til flere cifret tal fx Radix-10 til tal i Ti-tals systemet Fremgangsmåde: 1.Sorter efter mindst betydende ciffer. 2.Sorter efter 2. mindst betydende ciffer. 3.Sorter efter 3. mindst betydende ciffer n. Sorter efter mest betydende ciffer.

Radix Sort. Anvendt til flere cifret tal fx Radix-10 til tal i Ti-tals systemet Fremgangsmåde: 1.Sorter efter mindst betydende ciffer. 2.Sorter efter 2. mindst betydende ciffer. 3.Sorter efter 3. mindst betydende ciffer n. Sorter efter mest betydende ciffer.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Radix Sort. Anvendt til ord fx Radix-28. bi sodavand Konfirmation bil elefant ordbog øl vin sko ø Fremgangsmåde: 1.Sorter efter mindst betydende bogstav. 2.Sorter efter 2. mindst betydende bogstav. 3.Sorter efter 3. mindst betydende bogstav n. Sorter efter mest betydende bogstav.

Konklusion Quicksort: Effektiv og in-place algoritme Merge Sort: Effektiv kræver ekstra plads. Insertion Sort: Ineffektiv men kan anvendes som incremental sortering. Counting Sort: Effektiv kræver ekstra plads og kan kun anvendes til sortering af begrænsede hel tal. Radix Sort: Bygger på en stabil algoritme fx Counting Sort.