Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de...

102
Algorithmen und Datenstrukturen SS09 Foliensatz 1 Michael Brinkmeier Technische Universit¨ at Ilmenau Institut f¨ ur Theoretische Informatik Sommersemester 2009 Algorithmen und Datenstrukturen SS09 M. Brinkmeier TU Ilmenau

Transcript of Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de...

Page 1: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Algorithmen und Datenstrukturen SS09Foliensatz 1

Michael Brinkmeier

Technische Universitat IlmenauInstitut fur Theoretische Informatik

Sommersemester 2009

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 2: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Einiges Vorweg

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 3: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Organisatorisches

Hörer: Studierende der Informatik (2. FS) und Ingenieu-rinformatik (4. FS)

Vorlesung: wochentlich Dienstag 13:00-14:30 Uhr, Hu-HS

Übungen: Informatik: wochentlichIngenieurinformatik: 14-tagig

Homepage: http://www.tu-ilmenau.de/fakia/aud_ss09.html

Dort finden Sie Folien, Ubungsblatter usw.

Prüfungsstoff: Vorlesungen und Ubungen

Prüfung: 90 minutige Klausur nach Vorlesungsende undBonusprogramm

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 4: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Organisatorisches

Termine der Übungen: Dienstag (G) 15:00-16:30 Uhr, Sr HU 117Dr. Elke Hubel

Mittwoch 11:00-12:30 Uhr, Sr HU 202Dr. Michael Brinkmeier

Mittwoch 15:00-16:30 Uhr, Sr H 1520bDr. Elke Hubel

Donnerstag 15:00-16:30 Uhr, Sr HU 201Dr. Elke Hubel

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 5: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das BonusprogrammZwei 15 minutige Kurzklausuren in der Vorlesung

12. Mai23. Juni

Die in diesen Klausuren gesammelten Punkte werden als 10prozentiger Bonus auf die in der Prufungsklausur erreichten Punkteaufgeschlagen, d.h.

Gesamtpunkte = n +N

10·

n1 + n2

N1 + N2.

n = in der Prufungsklausr erreichte Punkte

N = erreichbare Punkte in der Prufungsklausur

ni = in der i-ten Zwischenklausur erreichten Punkte, i = 1, 2

Ni = erreichbare Punkte in der i-ten Zwischenklausur erreichbaren Punkte,

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 6: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das BonusprogrammZwei 15 minutige Kurzklausuren in der Vorlesung

12. Mai23. Juni

Die in diesen Klausuren gesammelten Punkte werden als 10prozentiger Bonus auf die in der Prufungsklausur erreichten Punkteaufgeschlagen, d.h.

Gesamtpunkte = n +N

10·

n1 + n2

N1 + N2.

n = in der Prufungsklausr erreichte Punkte

N = erreichbare Punkte in der Prufungsklausur

ni = in der i-ten Zwischenklausur erreichten Punkte, i = 1, 2

Ni = erreichbare Punkte in der i-ten Zwischenklausur erreichbaren Punkte,

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 7: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Literatur (Auswahl)

G. Schafer, Lehrmaterialien zur Vorlesung”Algorithmen und

Programmierung“, WS 2008/09.Wird vorausgesetzt!

T. Cormen, C. Leiserson, R. Rivest, C. Stein, Introduction to Algorithms,Second Edition, MIT Press 2001.

T. Ottmann, P. Widmayer, Algorithmen und Datenstrukturen, SpektrumAkademischer Verlag, 4. Auflage, 2001

R. Sedgewick, Algorithmen, 2. Auflage, Pearson, 2002

R. H. Guting, S. Dieker, Datenstrukturen und Algorithmen, 2. Auflage,Teubner 2003.

K. Mehlhorn, P. Sanders, Data Structures and Algorithms – A Basic Toolbox,Springer, 2008

U. Schoning, Algorithmik, Spektrum Akademischer Verlag, 2001

M. T. Goodrich, R. Tamassia, Data Structures andAlgorithms in Java, 2. Auflage, Wiley, 2003

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 8: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Inhalte

Algorithmen

Analyse und LaufzeitKorrektheit

Einfache Datenstrukturen: Listen, Stacks, Queues, Mengen, Baume

Einfache und balancierte Suchbaume

Hashtabellen

Sortieralgorithmen

Graphen

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 9: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Algorithmen und Probleme

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 10: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Etymologie des Begriffes “Algorithmus“

Ubersetzung aus www.wikipedia.org

Al-Khwarizmi, ein persischer Astronom und Mathematiker, schrieb825 n.Chr. eine Abhandlung mit dem Titel “Uber das Rechnen mitindischen Ziffern”.Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numeroIndorum” ins Lateinische ubersetzt, was wahrscheinlich “Algoritmiuber die Ziffern der Inder“ bedeuten sollte. Dabei war ”Algoritmi“die Ubertragung des Autorennamens in das Lateinische;Aber Leser, die den Titel mißverstanden, behandelten das WortAlgoritmi als lateinischen Plural, was zum Begriff ”Algorithmus“(Latein: algorismus) in der Bedeutung Rechenmethode fuhrte. Das”th“ wurde wahrscheinlich auf Grund einer angenommenen falschenVerwandschaft zu arithmos (Griechisch fur Zahl) eingefugt.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 11: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Etymologie des Begriffes “Algorithmus“

Ubersetzung aus www.wikipedia.org

Al-Khwarizmi, ein persischer Astronom und Mathematiker, schrieb825 n.Chr. eine Abhandlung mit dem Titel “Uber das Rechnen mitindischen Ziffern”.Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numeroIndorum” ins Lateinische ubersetzt, was wahrscheinlich “Algoritmiuber die Ziffern der Inder“ bedeuten sollte. Dabei war ”Algoritmi“die Ubertragung des Autorennamens in das Lateinische;Aber Leser, die den Titel mißverstanden, behandelten das WortAlgoritmi als lateinischen Plural, was zum Begriff ”Algorithmus“(Latein: algorismus) in der Bedeutung Rechenmethode fuhrte. Das”th“ wurde wahrscheinlich auf Grund einer angenommenen falschenVerwandschaft zu arithmos (Griechisch fur Zahl) eingefugt.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 12: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Etymologie des Begriffes “Algorithmus“

Ubersetzung aus www.wikipedia.org

Al-Khwarizmi, ein persischer Astronom und Mathematiker, schrieb825 n.Chr. eine Abhandlung mit dem Titel “Uber das Rechnen mitindischen Ziffern”.Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numeroIndorum” ins Lateinische ubersetzt, was wahrscheinlich “Algoritmiuber die Ziffern der Inder“ bedeuten sollte. Dabei war ”Algoritmi“die Ubertragung des Autorennamens in das Lateinische;Aber Leser, die den Titel mißverstanden, behandelten das WortAlgoritmi als lateinischen Plural, was zum Begriff ”Algorithmus“(Latein: algorismus) in der Bedeutung Rechenmethode fuhrte. Das”th“ wurde wahrscheinlich auf Grund einer angenommenen falschenVerwandschaft zu arithmos (Griechisch fur Zahl) eingefugt.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 13: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Der Algorithmusbegriff

Algorithmus

Ein Algorithmus ist eine Handlungs-/Rechenvorschrift zur Losung einesProblemes, bzw. zum Erreichen eines Zieles.

Durch diese Definition wird der Begriff Algorithmus mittels zweier intuitiverBegriffe definiert:

Problem

Handlungs-/Rechenvorschrift

Beide Begriffe hangen dabei wesentlich vom betrachteten Kontext ab. Dazugehoren:

die Spezifikation des Problems

die Moglichkeiten der handelnden Instanz/Person

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 14: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Der Algorithmusbegriff

Algorithmus

Ein Algorithmus ist eine Handlungs-/Rechenvorschrift zur Losung einesProblemes, bzw. zum Erreichen eines Zieles.

Durch diese Definition wird der Begriff Algorithmus mittels zweier intuitiverBegriffe definiert:

Problem

Handlungs-/Rechenvorschrift

Beide Begriffe hangen dabei wesentlich vom betrachteten Kontext ab. Dazugehoren:

die Spezifikation des Problems

die Moglichkeiten der handelnden Instanz/Person

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 15: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Der Algorithmusbegriff

Algorithmus

Ein Algorithmus ist eine Handlungs-/Rechenvorschrift zur Losung einesProblemes, bzw. zum Erreichen eines Zieles.

Durch diese Definition wird der Begriff Algorithmus mittels zweier intuitiverBegriffe definiert:

Problem

Handlungs-/Rechenvorschrift

Beide Begriffe hangen dabei wesentlich vom betrachteten Kontext ab. Dazugehoren:

die Spezifikation des Problems

die Moglichkeiten der handelnden Instanz/Person

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 16: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Spezifikation von Problemen

Ein (mathematisches) Problem umfasst ublicherweise

eine (moglicherweise unendliche) Menge von Situationen, dieublicherweise durch eine Reihe von Parametern beschrieben werden.

Eine Fragestellung oder eine Aufgabe, die von den Parametern abhangt.

Im Kontext von Computerprogrammen werden haufig die folgendenBezeichnungen verwendet:

Eingabe (Input): Die Belegung der Parameter

Ausgabe (Output): Die Antwort auf die Fragestellung

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 17: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Spezifikation von Problemen

Ein (mathematisches) Problem umfasst ublicherweise

eine (moglicherweise unendliche) Menge von Situationen, dieublicherweise durch eine Reihe von Parametern beschrieben werden.

Eine Fragestellung oder eine Aufgabe, die von den Parametern abhangt.

Im Kontext von Computerprogrammen werden haufig die folgendenBezeichnungen verwendet:

Eingabe (Input): Die Belegung der Parameter

Ausgabe (Output): Die Antwort auf die Fragestellung

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 18: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

BerechnungsproblemeAuf einer sehr abstrakten Ebene ergibt sich die folgende Definition:

Definition (Berechnungsproblem)

Eine Berechnunsproblem P = (I,O, f ) besteht aus

1 eine Menge I von moglichen Eingaben (Inputs, Instanzen)

2 einer Menge O von moglichen Ausgaben (Outputs, Losungen)

3 einer Abbildung f : I → 2O,

wobei 2O die Potenzmenge von O ist, d.h.

2O = X ⊆ O .

Interpretation: Die Elemente in f (x) sind alle moglichen Losungen zurEingabe x ∈ I. Dabei wird berucksichtigt, dass es unter Umstanden mehr alseine Losung gibt.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 19: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

BerechnungsproblemeAuf einer sehr abstrakten Ebene ergibt sich die folgende Definition:

Definition (Berechnungsproblem)

Eine Berechnunsproblem P = (I,O, f ) besteht aus

1 eine Menge I von moglichen Eingaben (Inputs, Instanzen)

2 einer Menge O von moglichen Ausgaben (Outputs, Losungen)

3 einer Abbildung f : I → 2O,

wobei 2O die Potenzmenge von O ist, d.h.

2O = X ⊆ O .

Interpretation: Die Elemente in f (x) sind alle moglichen Losungen zurEingabe x ∈ I. Dabei wird berucksichtigt, dass es unter Umstanden mehr alseine Losung gibt.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 20: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Beispiele von Problemen

MULT

Eingabe: a, b ∈ Z

Ausgabe: a · b

I = Z2

O = Z

f (x , y) = x · y

MAX

Eingabe: a1, . . . , an ∈ Z

Ausgabe: Ein ai mit ai ≥ aj fur allej = 1, . . . , n.

I = Seq(Z)O = Z

f (x) = ai | ai = maxa1, . . . , an

ARGMAX

Eingabe: a1, . . . , an ∈ Z

Ausgabe: Ein i mit ai ≥ aj fur allej = 1, . . . , n.

I = Seq(Z)O = N

f (x) = i | ai = maxa1, . . . , an

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 21: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Beispiele von Problemen

MULT

Eingabe: a, b ∈ Z

Ausgabe: a · b

I = Z2

O = Z

f (x , y) = x · y

MAX

Eingabe: a1, . . . , an ∈ Z

Ausgabe: Ein ai mit ai ≥ aj fur allej = 1, . . . , n.

I = Seq(Z)O = Z

f (x) = ai | ai = maxa1, . . . , an

ARGMAX

Eingabe: a1, . . . , an ∈ Z

Ausgabe: Ein i mit ai ≥ aj fur allej = 1, . . . , n.

I = Seq(Z)O = N

f (x) = i | ai = maxa1, . . . , an

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 22: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Beispiele von Problemen

MULT

Eingabe: a, b ∈ Z

Ausgabe: a · b

I = Z2

O = Z

f (x , y) = x · y

MAX

Eingabe: a1, . . . , an ∈ Z

Ausgabe: Ein ai mit ai ≥ aj fur allej = 1, . . . , n.

I = Seq(Z)O = Z

f (x) = ai | ai = maxa1, . . . , an

ARGMAX

Eingabe: a1, . . . , an ∈ Z

Ausgabe: Ein i mit ai ≥ aj fur allej = 1, . . . , n.

I = Seq(Z)O = N

f (x) = i | ai = maxa1, . . . , an

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 23: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Entscheidungsprobleme

Falls fur P = (I,O, f )

O = falsch, wahr und

|f (x)| = 1 fur jedes x ∈ I gilt,

spricht man auch von einem Entscheidungsproblem.

Die Bedingungen entsprechen f (x) = wahr oder f (x) = falsch fur allex ∈ I.

PRIM

Eingabe: a ∈ Z

Ist a eine Primzahl?

I = Z O = wahr, falsch

f (x) =

wahr falls x prim ist

falsch sonst

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 24: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Entscheidungsprobleme

Falls fur P = (I,O, f )

O = falsch, wahr und

|f (x)| = 1 fur jedes x ∈ I gilt,

spricht man auch von einem Entscheidungsproblem.

Die Bedingungen entsprechen f (x) = wahr oder f (x) = falsch fur allex ∈ I.

PRIM

Eingabe: a ∈ Z

Ist a eine Primzahl?

I = Z O = wahr, falsch

f (x) =

wahr falls x prim ist

falsch sonst

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 25: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Entscheidungsprobleme

Falls fur P = (I,O, f )

O = falsch, wahr und

|f (x)| = 1 fur jedes x ∈ I gilt,

spricht man auch von einem Entscheidungsproblem.

Die Bedingungen entsprechen f (x) = wahr oder f (x) = falsch fur allex ∈ I.

PRIM

Eingabe: a ∈ Z

Ist a eine Primzahl?

I = Z O = wahr, falsch

f (x) =

wahr falls x prim ist

falsch sonst

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 26: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Ein abstrakter Algorithmusbegriff

Definition (Algorithmus)

P = (I,O, f ) sein ein Berechnungsproblem. Ein (deterministischer)Algorithmus A der P lost ist eine durch einen endlichen Text beschriebeneAbbildung A : I → O mit

A(x) ∈ f (x) fur alle ∈ I.

Dabei ist der Text der A beschreibt im Kontext eines Rechenmodellesgegeben.

Auf den ersten Blick, entspricht die Funktion f von P einem Algorithmus.Jedoch ist die Einschrankung auf endliche Texte und den Kontext einesRechenmodelles wesentlich.

Diese besteht nicht fur die zu berechnende Funktion f von P .

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 27: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Ein abstrakter Algorithmusbegriff

Definition (Algorithmus)

P = (I,O, f ) sein ein Berechnungsproblem. Ein (deterministischer)Algorithmus A der P lost ist eine durch einen endlichen Text beschriebeneAbbildung A : I → O mit

A(x) ∈ f (x) fur alle ∈ I.

Dabei ist der Text der A beschreibt im Kontext eines Rechenmodellesgegeben.

Auf den ersten Blick, entspricht die Funktion f von P einem Algorithmus.Jedoch ist die Einschrankung auf endliche Texte und den Kontext einesRechenmodelles wesentlich.

Diese besteht nicht fur die zu berechnende Funktion f von P .

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 28: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

RechenmodelleUm ein Problem und eine zugehorige Losungsvorschrift – d.h. einenAlgorithmus – prazise beschreiben zu konnen, muss ein Kontext definiertwerden, der beschreibt . . .

. . . wie die Ein- und Ausgabe reprasentiert werden und

. . . welche Bearbeitungsschritte gemacht werden konnen.

Diesen Kontext liefern uns Rechenmodelle, z.B.:

klassische Arithmetik, Geometrie, Algebra und Logik (Axiomensysteme)

Endliche Automaten (Vorlesung AFS)

Turing-Maschinen (Vorlesung BuK)

Random Access Maschinen (RAM, Vorlesung BuK)

Quantencomputer

. . .

Das Rechenmodell bestimmt dabei wesentlich, wie die Probleme spezifiziertwerden mussen und welche Probleme uberhaupt losbar sind (VorlesungenAFS und BuK).

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 29: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

RechenmodelleUm ein Problem und eine zugehorige Losungsvorschrift – d.h. einenAlgorithmus – prazise beschreiben zu konnen, muss ein Kontext definiertwerden, der beschreibt . . .

. . . wie die Ein- und Ausgabe reprasentiert werden und

. . . welche Bearbeitungsschritte gemacht werden konnen.

Diesen Kontext liefern uns Rechenmodelle, z.B.:

klassische Arithmetik, Geometrie, Algebra und Logik (Axiomensysteme)

Endliche Automaten (Vorlesung AFS)

Turing-Maschinen (Vorlesung BuK)

Random Access Maschinen (RAM, Vorlesung BuK)

Quantencomputer

. . .

Das Rechenmodell bestimmt dabei wesentlich, wie die Probleme spezifiziertwerden mussen und welche Probleme uberhaupt losbar sind (VorlesungenAFS und BuK).

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 30: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

RechenmodelleUm ein Problem und eine zugehorige Losungsvorschrift – d.h. einenAlgorithmus – prazise beschreiben zu konnen, muss ein Kontext definiertwerden, der beschreibt . . .

. . . wie die Ein- und Ausgabe reprasentiert werden und

. . . welche Bearbeitungsschritte gemacht werden konnen.

Diesen Kontext liefern uns Rechenmodelle, z.B.:

klassische Arithmetik, Geometrie, Algebra und Logik (Axiomensysteme)

Endliche Automaten (Vorlesung AFS)

Turing-Maschinen (Vorlesung BuK)

Random Access Maschinen (RAM, Vorlesung BuK)

Quantencomputer

. . .

Das Rechenmodell bestimmt dabei wesentlich, wie die Probleme spezifiziertwerden mussen und welche Probleme uberhaupt losbar sind (VorlesungenAFS und BuK).

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 31: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

AlgorithmenIst ein Rechenmodell spezifiziert, kann ein Algorithmus haufig als Abfolgevon Operationen auf den vorhandenen Daten aufgefasst werden.

Im Allgemeinen haben Algorithmen die folgenden Eigenschaften:

Endlicher Text

Ein Algorithmus fur eine (unendliche) Menge von Eingaben x ∈ I

Hierbei ist die zeitliche Trennung zwischen Formulierung undAusfuhrung zu beachten. Zur Zeit der Formulierung ist die konkreteEingabe nicht bekannt.

Eine eindeutig vorgeschriebene Abfolge von Schritten, wenn die Eingabex bekannt ist (deterministischer Algorithmus)

Wenn der Algorithmus terminiert, muss die Ausgabe auf eine eindeutigdefinierte (und einfache) Weise aus den vorliegenden Daten ablesbar sein

Es ist explizit nicht verlangt, dass der Algorithmus terminiert

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 32: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

AlgorithmenIst ein Rechenmodell spezifiziert, kann ein Algorithmus haufig als Abfolgevon Operationen auf den vorhandenen Daten aufgefasst werden.

Im Allgemeinen haben Algorithmen die folgenden Eigenschaften:

Endlicher Text

Ein Algorithmus fur eine (unendliche) Menge von Eingaben x ∈ I

Hierbei ist die zeitliche Trennung zwischen Formulierung undAusfuhrung zu beachten. Zur Zeit der Formulierung ist die konkreteEingabe nicht bekannt.

Eine eindeutig vorgeschriebene Abfolge von Schritten, wenn die Eingabex bekannt ist (deterministischer Algorithmus)

Wenn der Algorithmus terminiert, muss die Ausgabe auf eine eindeutigdefinierte (und einfache) Weise aus den vorliegenden Daten ablesbar sein

Es ist explizit nicht verlangt, dass der Algorithmus terminiert

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 33: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

AlgorithmenIst ein Rechenmodell spezifiziert, kann ein Algorithmus haufig als Abfolgevon Operationen auf den vorhandenen Daten aufgefasst werden.

Im Allgemeinen haben Algorithmen die folgenden Eigenschaften:

Endlicher Text

Ein Algorithmus fur eine (unendliche) Menge von Eingaben x ∈ I

Hierbei ist die zeitliche Trennung zwischen Formulierung undAusfuhrung zu beachten. Zur Zeit der Formulierung ist die konkreteEingabe nicht bekannt.

Eine eindeutig vorgeschriebene Abfolge von Schritten, wenn die Eingabex bekannt ist (deterministischer Algorithmus)

Wenn der Algorithmus terminiert, muss die Ausgabe auf eine eindeutigdefinierte (und einfache) Weise aus den vorliegenden Daten ablesbar sein

Es ist explizit nicht verlangt, dass der Algorithmus terminiert

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 34: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

AlgorithmenIst ein Rechenmodell spezifiziert, kann ein Algorithmus haufig als Abfolgevon Operationen auf den vorhandenen Daten aufgefasst werden.

Im Allgemeinen haben Algorithmen die folgenden Eigenschaften:

Endlicher Text

Ein Algorithmus fur eine (unendliche) Menge von Eingaben x ∈ I

Hierbei ist die zeitliche Trennung zwischen Formulierung undAusfuhrung zu beachten. Zur Zeit der Formulierung ist die konkreteEingabe nicht bekannt.

Eine eindeutig vorgeschriebene Abfolge von Schritten, wenn die Eingabex bekannt ist (deterministischer Algorithmus)

Wenn der Algorithmus terminiert, muss die Ausgabe auf eine eindeutigdefinierte (und einfache) Weise aus den vorliegenden Daten ablesbar sein

Es ist explizit nicht verlangt, dass der Algorithmus terminiert

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 35: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

AlgorithmenIst ein Rechenmodell spezifiziert, kann ein Algorithmus haufig als Abfolgevon Operationen auf den vorhandenen Daten aufgefasst werden.

Im Allgemeinen haben Algorithmen die folgenden Eigenschaften:

Endlicher Text

Ein Algorithmus fur eine (unendliche) Menge von Eingaben x ∈ I

Hierbei ist die zeitliche Trennung zwischen Formulierung undAusfuhrung zu beachten. Zur Zeit der Formulierung ist die konkreteEingabe nicht bekannt.

Eine eindeutig vorgeschriebene Abfolge von Schritten, wenn die Eingabex bekannt ist (deterministischer Algorithmus)

Wenn der Algorithmus terminiert, muss die Ausgabe auf eine eindeutigdefinierte (und einfache) Weise aus den vorliegenden Daten ablesbar sein

Es ist explizit nicht verlangt, dass der Algorithmus terminiert

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 36: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

AlgorithmenIst ein Rechenmodell spezifiziert, kann ein Algorithmus haufig als Abfolgevon Operationen auf den vorhandenen Daten aufgefasst werden.

Im Allgemeinen haben Algorithmen die folgenden Eigenschaften:

Endlicher Text

Ein Algorithmus fur eine (unendliche) Menge von Eingaben x ∈ I

Hierbei ist die zeitliche Trennung zwischen Formulierung undAusfuhrung zu beachten. Zur Zeit der Formulierung ist die konkreteEingabe nicht bekannt.

Eine eindeutig vorgeschriebene Abfolge von Schritten, wenn die Eingabex bekannt ist (deterministischer Algorithmus)

Wenn der Algorithmus terminiert, muss die Ausgabe auf eine eindeutigdefinierte (und einfache) Weise aus den vorliegenden Daten ablesbar sein

Es ist explizit nicht verlangt, dass der Algorithmus terminiert

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 37: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das verwendete RechenmodellIm Gegensatz zu spateren Vorlesungen (AFS, BuK), verwenden wir in dieserVorlesung kein explizit formuliertes Rechenmodell.

Stattdessen verwenden wir einen Pseudocode, der an die gangigen hoherenProgrammiersprachen wie z.B. C, C++, Java . . . , angelehnt ist.

Algorithmus MAX

Eingabe: a1, . . . , an ∈ Z

Ausgabe: maxai | i = 1, . . . , n

Daten: x ∈ Z

x ← a1;

fur i = 2, . . . , n tuewenn ai > x dann x ← ai ;

Ende

zuruck x ;

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 38: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das verwendete RechenmodellIm Gegensatz zu spateren Vorlesungen (AFS, BuK), verwenden wir in dieserVorlesung kein explizit formuliertes Rechenmodell.

Stattdessen verwenden wir einen Pseudocode, der an die gangigen hoherenProgrammiersprachen wie z.B. C, C++, Java . . . , angelehnt ist.

Algorithmus MAX

Eingabe: a1, . . . , an ∈ Z

Ausgabe: maxai | i = 1, . . . , n

Daten: x ∈ Z

x ← a1;

fur i = 2, . . . , n tuewenn ai > x dann x ← ai ;

Ende

zuruck x ;

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 39: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das verwendete RechenmodellIm Gegensatz zu spateren Vorlesungen (AFS, BuK), verwenden wir in dieserVorlesung kein explizit formuliertes Rechenmodell.

Stattdessen verwenden wir einen Pseudocode, der an die gangigen hoherenProgrammiersprachen wie z.B. C, C++, Java . . . , angelehnt ist.

Algorithmus MAX

Eingabe: a1, . . . , an ∈ Z

Ausgabe: maxai | i = 1, . . . , n

Daten: x ∈ Z

x ← a1;

fur i = 2, . . . , n tuewenn ai > x dann x ← ai ;

Ende

zuruck x ;

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 40: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Analyse von Algorithmen

Im Zusammenhang mit Algorithmen stellen sich zwei wesentliche Fragen:

KorrektheitIst ein gegebener Algorithmus A fur ein Berechnungsproblem P korrekt, d.h.gilt A(x) ∈ f (x) fur alle x ∈ I?

LaufzeitWieviel Zeit benotigt ein ein gegebener Algorithmus A auf einer Eingabe x?

Die Beantwortung dieser beiden Fragen ist einer der Kernbereiche derInformatik.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 41: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Analyse von Algorithmen

Im Zusammenhang mit Algorithmen stellen sich zwei wesentliche Fragen:

KorrektheitIst ein gegebener Algorithmus A fur ein Berechnungsproblem P korrekt, d.h.gilt A(x) ∈ f (x) fur alle x ∈ I?

LaufzeitWieviel Zeit benotigt ein ein gegebener Algorithmus A auf einer Eingabe x?

Die Beantwortung dieser beiden Fragen ist einer der Kernbereiche derInformatik.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 42: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Analyse von Algorithmen

Im Zusammenhang mit Algorithmen stellen sich zwei wesentliche Fragen:

KorrektheitIst ein gegebener Algorithmus A fur ein Berechnungsproblem P korrekt, d.h.gilt A(x) ∈ f (x) fur alle x ∈ I?

LaufzeitWieviel Zeit benotigt ein ein gegebener Algorithmus A auf einer Eingabe x?

Die Beantwortung dieser beiden Fragen ist einer der Kernbereiche derInformatik.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 43: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Analyse von Algorithmen

Im Zusammenhang mit Algorithmen stellen sich zwei wesentliche Fragen:

KorrektheitIst ein gegebener Algorithmus A fur ein Berechnungsproblem P korrekt, d.h.gilt A(x) ∈ f (x) fur alle x ∈ I?

LaufzeitWieviel Zeit benotigt ein ein gegebener Algorithmus A auf einer Eingabe x?

Die Beantwortung dieser beiden Fragen ist einer der Kernbereiche derInformatik.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 44: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Ein erster Sortieralgorithmus

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 45: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das Sortierproblem

Das Sortierproblem hat als Parameter die Menge, uber der sortiert werdensoll.

(U, <) sei eine total geordnete Menge, d.h.

fur alle x ∈ U gilt x 6< x (Irreflexivitat)

fur alle x , y , z ∈ U folgt aus x < y udn y < z auch x < z (Transitivitat)

fur alle x , y ∈ U gilt x < y , x = y oder y < x (Totalitat)

Ferner sei

Seq(U) := (a1, . . . , an) | n ∈ N und a1, . . . , an ∈ U

die Menge aller endlichen Folgen (Sequenzen) uber U und

SortSeq(U) := (a1, . . . , an) ∈ Seq(U) | a1 ≤ a2 ≤ · · · ≤ an

die Menge aller sortierten endlichen Folgen uber U.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 46: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das Sortierproblem

Das Sortierproblem hat als Parameter die Menge, uber der sortiert werdensoll.

(U, <) sei eine total geordnete Menge, d.h.

fur alle x ∈ U gilt x 6< x (Irreflexivitat)

fur alle x , y , z ∈ U folgt aus x < y udn y < z auch x < z (Transitivitat)

fur alle x , y ∈ U gilt x < y , x = y oder y < x (Totalitat)

Ferner sei

Seq(U) := (a1, . . . , an) | n ∈ N und a1, . . . , an ∈ U

die Menge aller endlichen Folgen (Sequenzen) uber U und

SortSeq(U) := (a1, . . . , an) ∈ Seq(U) | a1 ≤ a2 ≤ · · · ≤ an

die Menge aller sortierten endlichen Folgen uber U.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 47: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das Sortierproblem

Das Sortierproblem hat als Parameter die Menge, uber der sortiert werdensoll.

(U, <) sei eine total geordnete Menge, d.h.

fur alle x ∈ U gilt x 6< x (Irreflexivitat)

fur alle x , y , z ∈ U folgt aus x < y udn y < z auch x < z (Transitivitat)

fur alle x , y ∈ U gilt x < y , x = y oder y < x (Totalitat)

Ferner sei

Seq(U) := (a1, . . . , an) | n ∈ N und a1, . . . , an ∈ U

die Menge aller endlichen Folgen (Sequenzen) uber U und

SortSeq(U) := (a1, . . . , an) ∈ Seq(U) | a1 ≤ a2 ≤ · · · ≤ an

die Menge aller sortierten endlichen Folgen uber U.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 48: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das Sortierproblem, erste Variante

Sei π eine Permutation der Zahlen 1, . . . , n, dann sei

(a1, . . . , an)π := (aπ(1), . . . aπ(n)).

Damit lasst sich das Sortierproblem uber U folgendermaßen spezifizieren:

Das Sortierproblem uber (U, <)

I = Seq(U)

O = SortSeq(U)

f (a1, . . . , an) ist die Menge aller (b1, . . . , bn) ∈ SortSeq(U) fur die einePermutation π existiert mit (b1, . . . , bn) = (a1, . . . , an)π

(a1, . . . , an) wird durch π sortiert, wenn (a1 . . . , an)π ∈ SortSeq(U).

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 49: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das Sortierproblem, erste Variante

Sei π eine Permutation der Zahlen 1, . . . , n, dann sei

(a1, . . . , an)π := (aπ(1), . . . aπ(n)).

Damit lasst sich das Sortierproblem uber U folgendermaßen spezifizieren:

Das Sortierproblem uber (U, <)

I = Seq(U)

O = SortSeq(U)

f (a1, . . . , an) ist die Menge aller (b1, . . . , bn) ∈ SortSeq(U) fur die einePermutation π existiert mit (b1, . . . , bn) = (a1, . . . , an)π

(a1, . . . , an) wird durch π sortiert, wenn (a1 . . . , an)π ∈ SortSeq(U).

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 50: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das Sortierproblem, erste Variante

Sei π eine Permutation der Zahlen 1, . . . , n, dann sei

(a1, . . . , an)π := (aπ(1), . . . aπ(n)).

Damit lasst sich das Sortierproblem uber U folgendermaßen spezifizieren:

Das Sortierproblem uber (U, <)

I = Seq(U)

O = SortSeq(U)

f (a1, . . . , an) ist die Menge aller (b1, . . . , bn) ∈ SortSeq(U) fur die einePermutation π existiert mit (b1, . . . , bn) = (a1, . . . , an)π

(a1, . . . , an) wird durch π sortiert, wenn (a1 . . . , an)π ∈ SortSeq(U).

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 51: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das Sortierproblem, zweite Variante

Alternativ kann man auch die Permutation als Ausgabe betrachten:

Das Sortierproblem uber (U, <)

I = Seq(U)

O ist die Menge aller Permutationen von Mengen der Form 1, . . . , nmit n ≥ 0.

f (a1, . . . , an) ist die Menge aller Permutationen π mit

(a1, . . . , an)π ∈ SortSeq(U)

Beide Formalisierungen sind aquivalent in dem Sinne, dass jede Losung dereinen Formalisierung eine Losung in der anderen Formalisierung induziert,und umgekehrt (Ubungsaufgabe).

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 52: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Das Sortierproblem, zweite Variante

Alternativ kann man auch die Permutation als Ausgabe betrachten:

Das Sortierproblem uber (U, <)

I = Seq(U)

O ist die Menge aller Permutationen von Mengen der Form 1, . . . , nmit n ≥ 0.

f (a1, . . . , an) ist die Menge aller Permutationen π mit

(a1, . . . , an)π ∈ SortSeq(U)

Beide Formalisierungen sind aquivalent in dem Sinne, dass jede Losung dereinen Formalisierung eine Losung in der anderen Formalisierung induziert,und umgekehrt (Ubungsaufgabe).

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 53: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Straight Insertion Sort

IdeeFuge ai an der korrekten Stelle in der bereits sortierten Liste a1, . . . , ai−1 ein.

Straight Insertion Sort

Eingabe: Ein Array A[1 . . . n] von Elementen in Z

Ausgabe: Das sortierte Feld A[1 . . . n]

fur i von 2 bis n tuex← A[i];

j← i;

solange j > 1 und x < A[j− 1] tueA[j]← A[j− 1];

j← j− 1;

Ende

A[j]← x;

Ende

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 54: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Straight Insertion Sort

IdeeFuge ai an der korrekten Stelle in der bereits sortierten Liste a1, . . . , ai−1 ein.

Straight Insertion Sort

Eingabe: Ein Array A[1 . . . n] von Elementen in Z

Ausgabe: Das sortierte Feld A[1 . . . n]

fur i von 2 bis n tuex← A[i];

j← i;

solange j > 1 und x < A[j− 1] tueA[j]← A[j− 1];

j← j− 1;

Ende

A[j]← x;

Ende

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 55: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Korrektheit von Straight Insertion Sort

Wir wollen im Folgenden die Korrektheit von Straight Insertion Sortbeweisen, d.h.:

Satz

Straight Insertion Sort sortiert jede Eingabe A[1 . . . n] aufsteigend.

In der Regel muss man zum Beweis der Korrektheit von Algorithmen auf dieDiskrete Mathematik zuruckgreifen.

Wesentliche Techniken sind dabei:

Die Vollstandige Induktion bei Schleifen

Die Wertverlaufsinduktion bei rekursiven Prozeduren

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 56: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Korrektheit von Straight Insertion Sort

Wir wollen im Folgenden die Korrektheit von Straight Insertion Sortbeweisen, d.h.:

Satz

Straight Insertion Sort sortiert jede Eingabe A[1 . . . n] aufsteigend.

In der Regel muss man zum Beweis der Korrektheit von Algorithmen auf dieDiskrete Mathematik zuruckgreifen.

Wesentliche Techniken sind dabei:

Die Vollstandige Induktion bei Schleifen

Die Wertverlaufsinduktion bei rekursiven Prozeduren

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 57: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Korrektheit von Straight Insertion Sort

Wir wollen im Folgenden die Korrektheit von Straight Insertion Sortbeweisen, d.h.:

Satz

Straight Insertion Sort sortiert jede Eingabe A[1 . . . n] aufsteigend.

In der Regel muss man zum Beweis der Korrektheit von Algorithmen auf dieDiskrete Mathematik zuruckgreifen.

Wesentliche Techniken sind dabei:

Die Vollstandige Induktion bei Schleifen

Die Wertverlaufsinduktion bei rekursiven Prozeduren

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 58: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Korrektheit von Straight Insertion Sort

Satz

Straight Insertion Sort sortiert jede Eingabe A[1 . . . n] aufsteigend.

Der Satz ist ein Korollar des folgenden Lemma:

Lemma

Nach dem Durchlauf mit i = k, enthalt A[1 . . .k ] die ersten k Elemente der

Eingabe in aufsteigender Reihenfolge.

Beweis

Wir beweisen das Lemma mittels vollstandiger Induktion uber k .

Induktionsanfang: i = 1, d.h. vor dem ersten Durchlauf. Zun diesemZeitpunkt ist A[1 . . . 1] offensichtlich sortiert.

. . .

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 59: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Korrektheit von Straight Insertion Sort

Satz

Straight Insertion Sort sortiert jede Eingabe A[1 . . . n] aufsteigend.

Der Satz ist ein Korollar des folgenden Lemma:

Lemma

Nach dem Durchlauf mit i = k, enthalt A[1 . . .k ] die ersten k Elemente der

Eingabe in aufsteigender Reihenfolge.

Beweis

Wir beweisen das Lemma mittels vollstandiger Induktion uber k .

Induktionsanfang: i = 1, d.h. vor dem ersten Durchlauf. Zun diesemZeitpunkt ist A[1 . . . 1] offensichtlich sortiert.

. . .

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 60: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Korrektheit von Straight Insertion Sort

Satz

Straight Insertion Sort sortiert jede Eingabe A[1 . . . n] aufsteigend.

Der Satz ist ein Korollar des folgenden Lemma:

Lemma

Nach dem Durchlauf mit i = k, enthalt A[1 . . .k ] die ersten k Elemente der

Eingabe in aufsteigender Reihenfolge.

Beweis

Wir beweisen das Lemma mittels vollstandiger Induktion uber k .

Induktionsanfang: i = 1, d.h. vor dem ersten Durchlauf. Zun diesemZeitpunkt ist A[1 . . . 1] offensichtlich sortiert.

. . .

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 61: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Korrektheit von Straight Insertion Sort

Satz

Straight Insertion Sort sortiert jede Eingabe A[1 . . . n] aufsteigend.

Der Satz ist ein Korollar des folgenden Lemma:

Lemma

Nach dem Durchlauf mit i = k, enthalt A[1 . . .k ] die ersten k Elemente der

Eingabe in aufsteigender Reihenfolge.

Beweis

Wir beweisen das Lemma mittels vollstandiger Induktion uber k .

Induktionsanfang: i = 1, d.h. vor dem ersten Durchlauf. Zun diesemZeitpunkt ist A[1 . . . 1] offensichtlich sortiert.

. . .

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 62: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Korrektheit von Straight Insertion Sort

Beweis (Fortsetzung)

Induktionsvoraussetzung: Nach dem Durchlauf mit i = k − 1 istA[1 . . . k − 1] sortiert.

Induktionsschritt: Am Ende der inneren Schleife gilt entweder j = 1 oder

j = mini | 1 ≤ i ≤ k − 1 und A[i ] > x

Gleichzeitig verschiebt die Schleife alle Eintrage A[j . . .i− 1] um einePosition nach rechts.

Falls j der kleinste Index eines Wertes in A[1 . . .k − 1] echt großer x ist,ergibt sich durch Verschieben von A[j . . . k − 1] und Einfugen von x = A[k ]eine sortierte Teilfolge A[1 . . . k ].

Falls j = 1 und A[i ] > x fur alle 1 ≤ i ≤ k − 1, so ergibt sich durch dieVerschiebung und das Einfugen von x = A[k ] an der Position 1 ebenfalls einesortierte Teilfolge.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 63: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Korrektheit von Straight Insertion Sort

Beweis (Fortsetzung)

Induktionsvoraussetzung: Nach dem Durchlauf mit i = k − 1 istA[1 . . . k − 1] sortiert.

Induktionsschritt: Am Ende der inneren Schleife gilt entweder j = 1 oder

j = mini | 1 ≤ i ≤ k − 1 und A[i ] > x

Gleichzeitig verschiebt die Schleife alle Eintrage A[j . . .i− 1] um einePosition nach rechts.

Falls j der kleinste Index eines Wertes in A[1 . . .k − 1] echt großer x ist,ergibt sich durch Verschieben von A[j . . . k − 1] und Einfugen von x = A[k ]eine sortierte Teilfolge A[1 . . . k ].

Falls j = 1 und A[i ] > x fur alle 1 ≤ i ≤ k − 1, so ergibt sich durch dieVerschiebung und das Einfugen von x = A[k ] an der Position 1 ebenfalls einesortierte Teilfolge.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 64: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Korrektheit von Straight Insertion Sort

Beweis (Fortsetzung)

Induktionsvoraussetzung: Nach dem Durchlauf mit i = k − 1 istA[1 . . . k − 1] sortiert.

Induktionsschritt: Am Ende der inneren Schleife gilt entweder j = 1 oder

j = mini | 1 ≤ i ≤ k − 1 und A[i ] > x

Gleichzeitig verschiebt die Schleife alle Eintrage A[j . . .i− 1] um einePosition nach rechts.

Falls j der kleinste Index eines Wertes in A[1 . . .k − 1] echt großer x ist,ergibt sich durch Verschieben von A[j . . . k − 1] und Einfugen von x = A[k ]eine sortierte Teilfolge A[1 . . . k ].

Falls j = 1 und A[i ] > x fur alle 1 ≤ i ≤ k − 1, so ergibt sich durch dieVerschiebung und das Einfugen von x = A[k ] an der Position 1 ebenfalls einesortierte Teilfolge.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 65: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Korrektheit von Straight Insertion Sort

Beweis (Fortsetzung)

Induktionsvoraussetzung: Nach dem Durchlauf mit i = k − 1 istA[1 . . . k − 1] sortiert.

Induktionsschritt: Am Ende der inneren Schleife gilt entweder j = 1 oder

j = mini | 1 ≤ i ≤ k − 1 und A[i ] > x

Gleichzeitig verschiebt die Schleife alle Eintrage A[j . . .i− 1] um einePosition nach rechts.

Falls j der kleinste Index eines Wertes in A[1 . . .k − 1] echt großer x ist,ergibt sich durch Verschieben von A[j . . . k − 1] und Einfugen von x = A[k ]eine sortierte Teilfolge A[1 . . . k ].

Falls j = 1 und A[i ] > x fur alle 1 ≤ i ≤ k − 1, so ergibt sich durch dieVerschiebung und das Einfugen von x = A[k ] an der Position 1 ebenfalls einesortierte Teilfolge.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 66: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Laufzeitanalyse

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 67: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Laufzeitanalyse

Idee der Laufzeitanalyse

Analysiere die vom Algorithmus A auf Eingabe x benotigte Rechenzeit.

Um die”benotigte Zeit“ abzuschatzen, wird nicht die tatsachlich benotigte

Zeit auf einem realen Rechner gemessen (ware nur mit Experimenten und aufeinzelnen Eingaben moglich), sondern es wird gezahlt wieviele und welche

Elementaroperationen

der Algorithmus auf einer Eingabe benotigt.

Da die genau Zahl von Elementaroperationen unter Umstanden stark von derEingabe abhangt, wird in der Regel versucht, eine obere Schranke inAbhangigkeit von der

Eingabegroße |x |

anzugeben.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 68: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Laufzeitanalyse

Idee der Laufzeitanalyse

Analysiere die vom Algorithmus A auf Eingabe x benotigte Rechenzeit.

Um die”benotigte Zeit“ abzuschatzen, wird nicht die tatsachlich benotigte

Zeit auf einem realen Rechner gemessen (ware nur mit Experimenten und aufeinzelnen Eingaben moglich), sondern es wird gezahlt wieviele und welche

Elementaroperationen

der Algorithmus auf einer Eingabe benotigt.

Da die genau Zahl von Elementaroperationen unter Umstanden stark von derEingabe abhangt, wird in der Regel versucht, eine obere Schranke inAbhangigkeit von der

Eingabegroße |x |

anzugeben.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 69: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Laufzeitanalyse

Idee der Laufzeitanalyse

Analysiere die vom Algorithmus A auf Eingabe x benotigte Rechenzeit.

Um die”benotigte Zeit“ abzuschatzen, wird nicht die tatsachlich benotigte

Zeit auf einem realen Rechner gemessen (ware nur mit Experimenten und aufeinzelnen Eingaben moglich), sondern es wird gezahlt wieviele und welche

Elementaroperationen

der Algorithmus auf einer Eingabe benotigt.

Da die genau Zahl von Elementaroperationen unter Umstanden stark von derEingabe abhangt, wird in der Regel versucht, eine obere Schranke inAbhangigkeit von der

Eingabegroße |x |

anzugeben.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 70: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

ElementaroperationenWas Elementaroperationen sind hangt wesentlich vom Rechenmodell ab.

Im Wesentlichen:

Arithmetische Grundoperationen (Addition, Subtraktion, Multiplikation,Division)

Vergleiche

Sprunge

Zuweisungen

Zeiger- und Indexauswertungen (Speicherzugriff)

Wesentliche Einflusse:

Prozessor

Programmiersprache und Compiler

Hauptspeichertyp

Cachestruktur

. . .

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 71: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

ElementaroperationenWas Elementaroperationen sind hangt wesentlich vom Rechenmodell ab.

Im Wesentlichen:

Arithmetische Grundoperationen (Addition, Subtraktion, Multiplikation,Division)

Vergleiche

Sprunge

Zuweisungen

Zeiger- und Indexauswertungen (Speicherzugriff)

Wesentliche Einflusse:

Prozessor

Programmiersprache und Compiler

Hauptspeichertyp

Cachestruktur

. . .

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 72: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Elementaroperationen

A← B + C

umfasst im Pseudocode 2 Elementaroperationen - eine Addition und eineZuweisung.

Implementiert man sie in Assembler auf einem x86 Prozessor, ergibt sich:

mov EAX,<B>

add EAX, <C>

mov <A>, EAX

(Naive) Annahme

Jede Elementaroperation im Pseudocode lasst sich mittels einer konstantenAnzahl von Elementaroperationen eines anderen Rechenmodells realisieren.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 73: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Elementaroperationen

A← B + C

umfasst im Pseudocode 2 Elementaroperationen - eine Addition und eineZuweisung.

Implementiert man sie in Assembler auf einem x86 Prozessor, ergibt sich:

mov EAX,<B>

add EAX, <C>

mov <A>, EAX

(Naive) Annahme

Jede Elementaroperation im Pseudocode lasst sich mittels einer konstantenAnzahl von Elementaroperationen eines anderen Rechenmodells realisieren.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 74: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Elementaroperationen

A← B + C

umfasst im Pseudocode 2 Elementaroperationen - eine Addition und eineZuweisung.

Implementiert man sie in Assembler auf einem x86 Prozessor, ergibt sich:

mov EAX,<B>

add EAX, <C>

mov <A>, EAX

(Naive) Annahme

Jede Elementaroperation im Pseudocode lasst sich mittels einer konstantenAnzahl von Elementaroperationen eines anderen Rechenmodells realisieren.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 75: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Rechenzeit und Elementaroperationen

Zu jeder Elementaroperation op existiert eine Konstante Cop, so dassdas Ausfuhren von op hochstens Zeit Cop benotigt.

Technische Unterschiede des Rechenmodells konnen bei der Festlegungder Konstanten berucksichtigt werden.

Die Konstanten Cop sind in der Regel unbekannt, bzw. werden nichtexplizit genannt.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 76: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Rechenzeit und Elementaroperationen

Zu jeder Elementaroperation op existiert eine Konstante Cop, so dassdas Ausfuhren von op hochstens Zeit Cop benotigt.

Technische Unterschiede des Rechenmodells konnen bei der Festlegungder Konstanten berucksichtigt werden.

Die Konstanten Cop sind in der Regel unbekannt, bzw. werden nichtexplizit genannt.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 77: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Rechenzeit und Elementaroperationen

Zu jeder Elementaroperation op existiert eine Konstante Cop, so dassdas Ausfuhren von op hochstens Zeit Cop benotigt.

Technische Unterschiede des Rechenmodells konnen bei der Festlegungder Konstanten berucksichtigt werden.

Die Konstanten Cop sind in der Regel unbekannt, bzw. werden nichtexplizit genannt.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 78: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Rechenzeit und Elementaroperationen

Definition (Kosten)

kop sei die Anzahl der Ausfuhrungen der Elementaroperation op bei derAusfuhrung eines Algorithmus A auf Eingabe x . Dann sind die Kosten tA(x)von A auf x definiert als

tA(x) :=∑

op

kop(x) · Cop,

wobei uber alle moglichen Elementaroperationen summiert wird.

Die Kosten sind ein ungefahres Maß fur die von A benotigte Rechenzeit.Daher sagt man auch haufig Rechenzeit statt Kosten.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 79: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Rechenzeit und Elementaroperationen

Definition (Kosten)

kop sei die Anzahl der Ausfuhrungen der Elementaroperation op bei derAusfuhrung eines Algorithmus A auf Eingabe x . Dann sind die Kosten tA(x)von A auf x definiert als

tA(x) :=∑

op

kop(x) · Cop,

wobei uber alle moglichen Elementaroperationen summiert wird.

Die Kosten sind ein ungefahres Maß fur die von A benotigte Rechenzeit.Daher sagt man auch haufig Rechenzeit statt Kosten.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 80: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Worst- und Best-Case

DefinitionWorst- und Best-Case-Kosten A sei ein Algorithmus mit Eingabemenge I.Ferner sei fur n ∈ N

In := x ∈ I | |x | = n .

Die Worst-Case-Kosten von A sind

TA(n) := max tA(x) | x ∈ In

und die Best-Case-Kosten sind

TA,best(n) := min tA(x) | x ∈ In

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 81: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Eine vorlaufige VereinfachungUm die Kosten, bzw. die Rechenzeit von Straight Insertion Sortabzuschatzen, machen wir eine – vorlaufige – Vereinfachung:

Die Konstanten Cop fur die Laufzeit der Elementaroperationen sind allegleich, d.h.

Cop = C fur alle op

Alternativ, konnen wir die Cop durch die großte Konstante abschatzen:

C := max

Cop | op ist eine Elementaroperation

Mit diesen Vereinfachungen ergeben sich die Kosten als

tA(x) = C ·∑

op

kop = C ·#Elementaroperationen

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 82: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Eine vorlaufige VereinfachungUm die Kosten, bzw. die Rechenzeit von Straight Insertion Sortabzuschatzen, machen wir eine – vorlaufige – Vereinfachung:

Die Konstanten Cop fur die Laufzeit der Elementaroperationen sind allegleich, d.h.

Cop = C fur alle op

Alternativ, konnen wir die Cop durch die großte Konstante abschatzen:

C := max

Cop | op ist eine Elementaroperation

Mit diesen Vereinfachungen ergeben sich die Kosten als

tA(x) = C ·∑

op

kop = C ·#Elementaroperationen

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 83: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Eine vorlaufige VereinfachungUm die Kosten, bzw. die Rechenzeit von Straight Insertion Sortabzuschatzen, machen wir eine – vorlaufige – Vereinfachung:

Die Konstanten Cop fur die Laufzeit der Elementaroperationen sind allegleich, d.h.

Cop = C fur alle op

Alternativ, konnen wir die Cop durch die großte Konstante abschatzen:

C := max

Cop | op ist eine Elementaroperation

Mit diesen Vereinfachungen ergeben sich die Kosten als

tA(x) = C ·∑

op

kop = C ·#Elementaroperationen

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 84: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Straight Insertion Sort

Eingabe: Ein Array A[1 . . . n] von Elementen in Z

Ausgabe: Das sortierte Feld A[1 . . . n]

fur i von 2 bis n tuex← A[i];

j← i;

solange j > 1 und x < A[j− 1] tueA[j]← A[j− 1];

j← j− 1;

Ende

A[j]← x;

Ende

wird (n − 1)-mal ausgefuhrt

wird (n − 1)-mal ausgefuhrt

wird n-mal ausgefuhrt

Bis zu (i − 1) Durchlaufe

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 85: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Straight Insertion Sort

Eingabe: Ein Array A[1 . . . n] von Elementen in Z

Ausgabe: Das sortierte Feld A[1 . . . n]

fur i von 2 bis n tuex← A[i];

j← i;

solange j > 1 und x < A[j− 1] tueA[j]← A[j− 1];

j← j− 1;

Ende

A[j]← x;

Ende

wird (n − 1)-mal ausgefuhrt

wird (n − 1)-mal ausgefuhrt

wird n-mal ausgefuhrt

Bis zu (i − 1) Durchlaufe

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 86: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Straight Insertion Sort

Eingabe: Ein Array A[1 . . . n] von Elementen in Z

Ausgabe: Das sortierte Feld A[1 . . . n]

fur i von 2 bis n tuex← A[i];

j← i;

solange j > 1 und x < A[j− 1] tueA[j]← A[j− 1];

j← j− 1;

Ende

A[j]← x;

Ende

wird (n − 1)-mal ausgefuhrt

wird (n − 1)-mal ausgefuhrt

wird n-mal ausgefuhrt

Bis zu (i − 1) Durchlaufe

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 87: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Straight Insertion Sort

Eingabe: Ein Array A[1 . . . n] von Elementen in Z

Ausgabe: Das sortierte Feld A[1 . . . n]

fur i von 2 bis n tuex← A[i];

j← i;

solange j > 1 und x < A[j− 1] tueA[j]← A[j− 1];

j← j− 1;

Ende

A[j]← x;

Ende

wird (n − 1)-mal ausgefuhrt

wird (n − 1)-mal ausgefuhrt

wird n-mal ausgefuhrt

Bis zu (i − 1) Durchlaufe

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 88: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Die Anweisungen der außeren Schleife ergeben somit

n + 3(n − 1) Elementaroperationen

Die Zahl der Operationen, die wahrend der Durchlaufe der inneren Schleifeausgefuhrt werden, hangt von der Anzahl der Durchlaufe ab.

Im Maximum sind es in der Runde fur i = i genau i − 1 Durchlaufe.ki sei die Anzahl der Durchlaufe der inneren Schleife fur i = i .

Da die innere Schleife auf jeden Fall den letzten Test der Schleifenbedingungbenotigt, ergibt sich die Gesamtzahl der Elementaroperationen als

n + 3 · (n − 1) + (n − 1) + 3 ·n

i=2

ki .

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 89: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Die Anweisungen der außeren Schleife ergeben somit

n + 3(n − 1) Elementaroperationen

Die Zahl der Operationen, die wahrend der Durchlaufe der inneren Schleifeausgefuhrt werden, hangt von der Anzahl der Durchlaufe ab.

Im Maximum sind es in der Runde fur i = i genau i − 1 Durchlaufe.ki sei die Anzahl der Durchlaufe der inneren Schleife fur i = i .

Da die innere Schleife auf jeden Fall den letzten Test der Schleifenbedingungbenotigt, ergibt sich die Gesamtzahl der Elementaroperationen als

n + 3 · (n − 1) + (n − 1) + 3 ·n

i=2

ki .

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 90: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Bei naherer Betrachtung der Anzahl der Durchlaufe der inneren Schleife furi = i , stellt man fest, das jedes Element in A[1, . . . i − 1] mit A[j ] > A[i ]einen Durchlauf erzwingt, d.h.

ki = |j | j < i und A[i ] < A[j ]|.

(Ubungsaufgabe)

Notation

Fur eine Menge X sei |X | die Anzahl der Elemente in X .Wir schreiben |X | =∞, wenn X unendlich viele Elemente enthalt.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 91: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Bei naherer Betrachtung der Anzahl der Durchlaufe der inneren Schleife furi = i , stellt man fest, das jedes Element in A[1, . . . i − 1] mit A[j ] > A[i ]einen Durchlauf erzwingt, d.h.

ki = |j | j < i und A[i ] < A[j ]|.

(Ubungsaufgabe)

Notation

Fur eine Menge X sei |X | die Anzahl der Elemente in X .Wir schreiben |X | =∞, wenn X unendlich viele Elemente enthalt.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 92: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Der”Worst Case“(schlechtester Fall)

ki = i − 1 fur alle i .

Beispiel: x = (6, 5, 4, 3, 2, 1)

Damit gilt

n∑

i=2

ki =

n∑

i=2

(i − 1) =

n−1∑

i=1

i =n · (n − 1)

2=

(

n

2

)

und die Gesamtzahl der Operationen ist

n + 4 · (n − 1) + 3 ·n · (n − 1)

2=

3

2n2 +

7

2n − 4.

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 93: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Der”Best Case“(bester Fall)

ki = 0 fur alle i .

Beispiel: x = (1, 2, 3, 4, 5, 6)

Gesamtzahl der Operationen:

n + 4 · (n − 1) = 5n− 4.

Worst Case (zur Erinnerung)

3

2n2 +

7

2n − 4

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 94: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Der”Best Case“(bester Fall)

ki = 0 fur alle i .

Beispiel: x = (1, 2, 3, 4, 5, 6)

Gesamtzahl der Operationen:

n + 4 · (n − 1) = 5n− 4.

Worst Case (zur Erinnerung)

3

2n2 +

7

2n − 4

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 95: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Die Laufzeit von Straight Insertion Sort

Der”Best Case“(bester Fall)

ki = 0 fur alle i .

Beispiel: x = (1, 2, 3, 4, 5, 6)

Gesamtzahl der Operationen:

n + 4 · (n − 1) = 5n− 4.

Worst Case (zur Erinnerung)

3

2n2 +

7

2n − 4

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 96: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Laufzeitanalyse

Beobachtungen

Selbst Fur eine feste Implementierung eines Algorithmus A auf einerfesten Maschine und eine feste Eingabegroße n = |x | kann die Zahl derbenotigten Elementaroperationen hochst unterschiedlich sein.

Verschiedene Rechenmodelle oder Rechnerarchitekturen fuhren zuunterschiedlichen Konstanten

Fazit

Der Begriff”Laufzeit von Algorithmus A auf Eingaben x der Große n = |x |“

ist nur sehr eingeschrankt nutzbar.

Deutlich sinnvoller sind die Angaben von oberen und unteren Schranken

Außerdem sollten die konstanten Faktoren nicht berucksichtigt werden.

⇒ asymptotische Notation (O- und Ω-Notationen)

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 97: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Laufzeitanalyse

Beobachtungen

Selbst Fur eine feste Implementierung eines Algorithmus A auf einerfesten Maschine und eine feste Eingabegroße n = |x | kann die Zahl derbenotigten Elementaroperationen hochst unterschiedlich sein.

Verschiedene Rechenmodelle oder Rechnerarchitekturen fuhren zuunterschiedlichen Konstanten

Fazit

Der Begriff”Laufzeit von Algorithmus A auf Eingaben x der Große n = |x |“

ist nur sehr eingeschrankt nutzbar.

Deutlich sinnvoller sind die Angaben von oberen und unteren Schranken

Außerdem sollten die konstanten Faktoren nicht berucksichtigt werden.

⇒ asymptotische Notation (O- und Ω-Notationen)

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 98: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Laufzeitanalyse

Beobachtungen

Selbst Fur eine feste Implementierung eines Algorithmus A auf einerfesten Maschine und eine feste Eingabegroße n = |x | kann die Zahl derbenotigten Elementaroperationen hochst unterschiedlich sein.

Verschiedene Rechenmodelle oder Rechnerarchitekturen fuhren zuunterschiedlichen Konstanten

Fazit

Der Begriff”Laufzeit von Algorithmus A auf Eingaben x der Große n = |x |“

ist nur sehr eingeschrankt nutzbar.

Deutlich sinnvoller sind die Angaben von oberen und unteren Schranken

Außerdem sollten die konstanten Faktoren nicht berucksichtigt werden.

⇒ asymptotische Notation (O- und Ω-Notationen)

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 99: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Laufzeitanalyse

Beobachtungen

Selbst Fur eine feste Implementierung eines Algorithmus A auf einerfesten Maschine und eine feste Eingabegroße n = |x | kann die Zahl derbenotigten Elementaroperationen hochst unterschiedlich sein.

Verschiedene Rechenmodelle oder Rechnerarchitekturen fuhren zuunterschiedlichen Konstanten

Fazit

Der Begriff”Laufzeit von Algorithmus A auf Eingaben x der Große n = |x |“

ist nur sehr eingeschrankt nutzbar.

Deutlich sinnvoller sind die Angaben von oberen und unteren Schranken

Außerdem sollten die konstanten Faktoren nicht berucksichtigt werden.

⇒ asymptotische Notation (O- und Ω-Notationen)

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 100: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Laufzeitanalyse

Beobachtungen

Selbst Fur eine feste Implementierung eines Algorithmus A auf einerfesten Maschine und eine feste Eingabegroße n = |x | kann die Zahl derbenotigten Elementaroperationen hochst unterschiedlich sein.

Verschiedene Rechenmodelle oder Rechnerarchitekturen fuhren zuunterschiedlichen Konstanten

Fazit

Der Begriff”Laufzeit von Algorithmus A auf Eingaben x der Große n = |x |“

ist nur sehr eingeschrankt nutzbar.

Deutlich sinnvoller sind die Angaben von oberen und unteren Schranken

Außerdem sollten die konstanten Faktoren nicht berucksichtigt werden.

⇒ asymptotische Notation (O- und Ω-Notationen)

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 101: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Laufzeitanalyse

Beobachtungen

Selbst Fur eine feste Implementierung eines Algorithmus A auf einerfesten Maschine und eine feste Eingabegroße n = |x | kann die Zahl derbenotigten Elementaroperationen hochst unterschiedlich sein.

Verschiedene Rechenmodelle oder Rechnerarchitekturen fuhren zuunterschiedlichen Konstanten

Fazit

Der Begriff”Laufzeit von Algorithmus A auf Eingaben x der Große n = |x |“

ist nur sehr eingeschrankt nutzbar.

Deutlich sinnvoller sind die Angaben von oberen und unteren Schranken

Außerdem sollten die konstanten Faktoren nicht berucksichtigt werden.

⇒ asymptotische Notation (O- und Ω-Notationen)

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau

Page 102: Algorithmen und Datenstrukturen SS09 · Es wurde im 12. Jahrhundert unter dem Titel “Algoritmi de numero Indorum” ins Lateinische ¨ubersetzt, was wahrscheinlich “Algoritmi

Weiter geht es mit

Asymptotischen Notationen

Algorithmen und Datenstrukturen SS09

M. BrinkmeierTU Ilmenau