Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Sortering.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.2 Sortering Vi hartidligere set at effektiv søgning forudsætter.

Lignende præsentationer


Præsentationer af emnet: "Sortering.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.2 Sortering Vi hartidligere set at effektiv søgning forudsætter."— Præsentationens transcript:

1 Sortering

2  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.2 Sortering Vi hartidligere set at effektiv søgning forudsætter at det datamateriale der skal søges i er sorteret. Også andre typer beregninger på store datamængder kan effektiviseres betragteligt hvis datamængderne er sorteret. Et eksempel er samkøring af tabeller (registre) i databaser. Blandt andet derfor er der brugt mange ressourcer på at finde effektive sorteringsalgoritmer, og det er fortsat et varmt forskningsområde.

3  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.3 Sortering af en sekvens Nogen gode idéer? s:

4  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.4 Et hav af sorteringsalgoritmer Indsættelsessortering Udvalgssortering Bobblesortering Flettesortering Heapsortering Shellsortering Bucketsort Combsort Quicksort...

5  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.5 Indsættelsessortering s: i lokalt sorteret (  ) i = 1; while ( i != s.size() ) { “indsæt s.elementAt(i) i s[0..i]” i++; }

6  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.6 Udvalgssortering s: i globalt sorteret (  ) i = 0; while ( i != s.size()-1 ) { int m = “indeks for en mindste værdi i s[i..s.size())”; “byt s[i] og s[m]”; i++; } m

7  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.7 Del, løs og kombinér? P P1P2 L1L2 L L1 = løs(P1)L2 = løs(P2) Del Løs Kombinér

8  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.8 Løsningselementer Hvad er løsningen på simple problemer Hvordan nedbrydes et problem i (to) delproblemer Hvordan kombineres (to) løsninger til en samlet løsning

9  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.9 Flettesortering void sort(Sequence s, int l, int h) { // pre: l <= h // post: s[l..h) er sorteret if ( l+1 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.dk/16/4930400/slides/slide_9.jpg", "name": " Michael E.", "description": "Caspersen, 2000Introducerende objektorienteret programmeringSortering.9 Flettesortering void sort(Sequence s, int l, int h) { // pre: l <= h // post: s[l..h) er sorteret if ( l+1

10  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.10 Quicksort void sort(Sequence s, int l, int h) { // pre: l <= h // post: s[l..h) er sorteret if ( l+1 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.dk/16/4930400/slides/slide_10.jpg", "name": " Michael E.", "description": "Caspersen, 2000Introducerende objektorienteret programmeringSortering.10 Quicksort void sort(Sequence s, int l, int h) { // pre: l <= h // post: s[l..h) er sorteret if ( l+1

11  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.11 Quicksort int partition(Sequence s, int l, int h) { // post: p returneres hvor l <= p < h og // s[l..p) <= s[p] < s[p+1..h) int i, j, e; i = l+1; j = h-1; e = s.elementAt(l); while( i<=j ) { if ( s.elementAt(i) <= e ) i++; else if ( s.elementAt(j) > e ) j--; else { swap(i, j); i++; j--; } } swap(l, j); return j; } s: l hij <= e> e?e


Download ppt "Sortering.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.2 Sortering Vi hartidligere set at effektiv søgning forudsætter."

Lignende præsentationer


Annoncer fra Google