Newest Viewed Downloaded

Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)

Organisatorisches

Praktikum Falls Sie einen eigenen Laptop mit einem C-Compiler besitzen, können Sie diesen gerne zum Praktikum mitbringen

Organisatorisches

Lernräume Montag: 14.30-17.30 Uhr (OH14, Raum 340) Dienstag: 15-18 Uhr (OH14, Raum 340) Mittwoch: 13-16 Uhr (OH14, Raum 340) Donnerstag: 9-12 Uhr (GB V, Raum 105)

1. Teil der Vorlesung – Grundlagen der Algorithmenanalyse

Inhalt Wie beschreibt man einen Algorithmus? Wie beweist man die Korrektheit eines Algorithmus? Rechenmodell Laufzeitanalyse

InsertionSort(Array A)  Eingabegröße n for j  2 to length[A] do  length[A] = n key  A[j] i  j-1  verschiebe alle Elemente aus while i>0 and A[i]>key do  A[1…j-1], die größer als key A[i+1]  A[i]  sind eine Stelle nach rechts i  i-1 A[i+1]  key  Speichere key in Lücke Fragestellung Wie kann man die Laufzeit eines Algorithmus vorhersagen?

Laufzeitanalyse

Laufzeitanalyse

Laufzeit hängt ab von Größe der Eingabe (Parameter n) Art der Eingabe (Insertionsort ist schneller auf sortierten Eingaben) Analyse Parametrisiere Laufzeit als Funktion der Eingabegröße Finde obere Schranken (Garantien) an die Laufzeit

Laufzeitanalyse

Worst-Case Analyse Für jedes n definiere Laufzeit T(n) = Maximum über alle Eingaben der Größe n Garantie für jede Eingabe Standard Average-Case Analyse Für jedes n definiere Laufzeit T(n) = Durchschnitt über alle Eingaben der Größe n Hängt von Definition des Durchschnitts ab (wie sind die Eingaben verteilt)

Laufzeitanalyse

Laufzeit hängt auch ab von Hardware (Prozessor, Cache, Pipelining) Software (Betriebssystem, Programmiersprache, Compiler) Aber Analyse soll unabhängig von Hard- und Software gelten

Laufzeitanalyse

Maschinenmodell Eine Pseudocode-Instruktion braucht einen Zeitschritt Wird eine Instruktion r-mal aufgerufen, werden r Zeitschritte benötigt Formales Modell: Random Access Machines (RAM Modell) Idee Ignoriere rechnerabhängige Konstanten Betrachte Wachstum von T(n) für n „Asymptotische Analyse“

InsertionSort(Array A) Zeit: for j  2 to length[A] do n key  A[j] i  j-1 while i>0 and A[i]>key do A[i+1]  A[i] i  i-1 A[i+1]  key

Laufzeitanalyse

InsertionSort(Array A) Zeit: for j  2 to length[A] do n key  A[j] n-1 i  j-1 while i>0 and A[i]>key do A[i+1]  A[i] i  i-1 A[i+1]  key

Laufzeitanalyse

InsertionSort(Array A) Zeit: for j  2 to length[A] do n key  A[j] n-1 i  j-1 n-1 while i>0 and A[i]>key do A[i+1]  A[i] i  i-1 A[i+1]  key

Laufzeitanalyse

InsertionSort(Array A) Zeit: for j  2 to length[A] do n key  A[j] n-1 i  j-1 n-1 while i>0 and A[i]>key do n-1 + S t A[i+1]  A[i] i  i-1 A[i+1]  key t : Anzahl Wiederholungen der while-Schleife bei Laufindex j

Laufzeitanalyse j j

InsertionSort(Array A) Zeit: for j  2 to length[A] do n key  A[j] n-1 i  j-1 n-1 while i>0 and A[i]>key do n-1 + S t A[i+1]  A[i] S t i  i-1 A[i+1]  key t : Anzahl Wiederholungen der while-Schleife bei Laufindex j

Laufzeitanalyse j j j

InsertionSort(Array A) Zeit: for j  2 to length[A] do n key  A[j] n-1 i  j-1 n-1 while i>0 and A[i]>key do n-1 + S t A[i+1]  A[i] S t i  i-1 S t A[i+1]  key t : Anzahl Wiederholungen der while-Schleife bei Laufindex j

Laufzeitanalyse j j j j

InsertionSort(Array A) Zeit: for j  2 to length[A] do n key  A[j] n-1 i  j-1 n-1 while i>0 and A[i]>key do n-1 + S t A[i+1]  A[i] S t i  i-1 S t A[i+1]  key n-1 t : Anzahl Wiederholungen der while-Schleife bei Laufindex j

Laufzeitanalyse j j j j

InsertionSort(Array A) Zeit: for j  2 to length[A] do n key  A[j] n-1 i  j-1 n-1 while i>0 and A[i]>key do n-1 + S t A[i+1]  A[i] S t i  i-1 S t A[i+1]  key n-1 t : Anzahl Wiederholungen der while-Schleife bei Laufindex j

Laufzeitanalyse j j j 5n-4+3 S t j j

Laufzeitanalyse

Worst-Case Analyse t =j-1 für absteigend sortierte Eingabe (schlechtester Fall) j

Laufzeitanalyse

Worst-Case Analyse t =j-1 für absteigend sortierte Eingabe (schlechtester Fall) j

Laufzeitanalyse

Worst-Case Analyse t =j-1 für absteigend sortierte Eingabe (schlechtester Fall) Abstraktion von multiplikativen Konstanten  O-Notation (gleich) j

Showing 1 - 20 of 49 items Details

Name: 
Vorlesung03
Author: 
msteolsc
Company: 
itmc - TU Dortmund
Description: 
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Tags: 
output | laufzeitanalyse | true | while | laufzeit | key | array | nullvektortest
Created: 
12/1/2008 10:04:29 AM
Slides: 
49
Views: 
2
Downloads: 
0
Rating: 
0


> Comment



Share this presentation
|

Comments

Share this presentation:

|
Sitemap