• Keine Ergebnisse gefunden

Informatik II Sortieralgorithmen

N/A
N/A
Protected

Academic year: 2021

Aktie "Informatik II Sortieralgorithmen"

Copied!
4
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

1

Clausthal

C G C C G C

Informatik II

Sortieralgorithmen

G. Zachmann

Clausthal University, Germany zach@tu-clausthal.de

G. Zachmann Informatik 2 – SS 11 Sortieren 2

C G C C G

Motivation

C

§ 

Preprocessing fürs Suchen

§ 

Sind für kommerzielle Anwendungen häufig die Programmteile, die die meiste Rechenzeit verbrauchen

§ 

Viele raffinierte Methoden wurden im Laufe der Zeit entwickelt, von denen wir ein paar kennenlernen wollen

(2)

2

G. Zachmann Informatik 2 – SS 11 Sortieren 3

C G C C G C

Sortierschlüssel Inhalt

Die Sortieraufgabe

§ 

Eingabe: Datensätze (records) aus einem File, der Form

§ Key und satellite/payload data

§ 

Sortierschlüssel kann aus einem oder mehreren Feldern des Datensatzes bestehen (z.B. Nachname + Vorname)

§ 

Bedingung: auf den Keys muß eine totale Ordnungsrelation definiert sein, d.h., es gilt

§ Trichotomie: für alle Keys a,b gilt genau eine Relation

§ Transitivität:

§ 

Aufgabe: bestimme eine Permutation Π = (p1, … , pn) für die Records, so daß die Keys in nicht-fallender Ordnung sind:

G. Zachmann Informatik 2 – SS 11 Sortieren 4

C G C C G C

§ 

Implementierung üblicherweise als Klasse mit eingebautem Vergleichsoperator:

class MyData:

def __init__( self, key, value ):

self.key = key self.value = value def __cmp__( self, other ):

if self.key < other.key:

return -1

elif self.key > other.key:

return 1 else:

return 0 a = MyData(…) b = MyData(…) if a < b:

...

(3)

3

G. Zachmann Informatik 2 – SS 11 Sortieren 5

C G C C G

Klassifikation / Kriterien von Sortierverfahren

C

§ 

Interne Sortierverfahren:

§ Alle Datensätze befinden sich im Hauptspeicher

§ Es besteht random access auf den gesamten Datenbestand

§ Bekannte Verfahren: Bubblesort, Insertionsort, Selectionsort, Quicksort, Heapsort

§ 

Externe Sortierverfahren:

§ Die Datensätze befinden sich in einem Hintergrundspeicher (Festplatte, Magnetband, etc.) und können nur sequentiell verarbeitet werden

§ Bekanntes Verfahren: Mergesort

G. Zachmann Informatik 2 – SS 11 Sortieren 6

C G C C G

Exkurs: Tape Libraries

C

§ 

Wird auch heute noch für Datenarchive gerne verwendet

§ 

Beispiel (Deutsches Klimarechenzentrum, Stand 2010):

§ 8 robots per library

§ 500 TeraByte disk cache

§ Total capacity:

60 PetaByte

§ Projected fill rate:

10 PetaByte/year

(4)

4

G. Zachmann Informatik 2 – SS 11 Sortieren 7

C G C C G

Fortsetzung Klassifikation

C

§ 

Vergleichsbasiert (comparison sort): zulässige Operationen auf den Daten sind nur Vergleich und Umkopieren

§ 

Zahlenbasiert: man darf/kann auf den Keys auch rechnen

§ Diese Unterscheidung ist analog zu der bei den Suchalgorithmen

§ 

Stabil (stable): Gleiche Keys haben nach dem Sortieren die selbe relative Lage zueinander wie vorher

§ 

Array-basiert vs. Listen-basiert: Können Datensätze beliebig im Speicher angeordnet sein (Liste), oder müssen sie hintereinander im Speicher liegen (Array)

§ 

In-Place (in situ): Algorithmus braucht nur konstanten zusätzlichen Speicher (z.B. Zähler; aber keine Hilfsarrays o.ä.)

§ Konsequenz: Ausgabe-Array = Eingabe-Array

Referenzen

ÄHNLICHE DOKUMENTE

  Eingabespezifikation: Es muss genau spezifiziert sein, welche Eingaben erforderlich sind und welchen Bedingungen diese Größen genügen müssen, damit der Algorithmus

2.  Sprache ist strongly typed (stark typisiert), wenn es wenig automatische Konvertierung (coercion) für die eingebauten Operatoren und Typen gibt. §  Insbesondere: wenn es

§  Eine Hash-Funktion h heißt perfekt für eine Menge von Keys K, falls keine Kollisionen für K auftreten. §  Die Hash-Funktion h kann nur dann perfekt sein, wenn |K| =

  Stabil (stable): Gleiche Keys haben nach dem Sortieren die selbe relative Lage zueinander wie vorher.  

Listen-basiert: Können Datensätze beliebig im Speicher angeordnet sein (Liste), oder müssen sie hintereinander im Speicher liegen (Array).  In-Place (in situ): Algorithmus braucht

 da bei jedem Durchlauf auch andere Elemente ihre Position verbessern, ist häufig der Vorgang bereits nach weniger als N-1 Durchgängen

Die beiden Disziplinen Wirtschaftsinformatik und Medizi- nische Informatik gehören zu den sogenannten Binde- strich-Informatik-Fächern, die sich mit der Anwendung der Methoden

Bei den bisher eingeführten Datentypen hat der Programmierer keinen oder nur geringen Ein- fluss auf dessen Ausprägung. Einzig der Array-Typ war in bescheidenem Maße gestaltbar