Algorithmen und Datenstrukturen 1
|
|
|
- Henriette Scholz
- vor 9 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen 1 2. Vorlesung Prof. Dr. Peter F. Stadler Universität Leipzig Institut für Informatik [email protected]
2 Einfache Suchverfahren Lineare Listen Sequentielle Suche Binäre Suche Weitere Suchverfahren auf sortierten Feldern Sprungsuche Exponentielle Suche Interpolationssuche Auswahlproblem P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 2
3 Lineare Listen Endliche Folge von Elementen eines Grundtyps (Elementtyps) <a 1, a 2,... a n > falls n > 0 leere Liste < > falls n=0 Position von Elementen in der Liste ist wesentlich Wesentliche Implementierungsalternativen Sequentielle Speicherung (Reihung, Array). Eigenschaften: 1. statische Datenstruktur (hoher Speicheraufwand) 2. wahlfreie Zugriffsmöglichkeit über (berechenbaren) Index 3. 1-dimensionale vs. mehrdimensionale Arrays Verkettete Speicherung. Eigenschaften: 1. dynamische Datenstruktur 2. sequentielle Navigation 3. Varianten: einfache vs. doppelte Verkettung etc. P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 3
4 Sequenzielle Suche Suche nach Element mit Schlüsselwert x: Falls unbekannt, ob die Elemente der Liste nach ihren Schlüsselwerten sortiert sind, ist die Liste sequentiell zu durchlaufen und elementweise zu überprüfen (sequenzielle Suche). Kosten erfolglose Suche erfordert n Schleifendurchläufe erfolgreiche Suche verlangt im ungünstigsten Fall n Schlüsselvergleiche (und n-1 Schleifendurchläufe) mittlere Anzahl von Schlüsselvergleichen bei erfolgreicher Suche: P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 4
5 Binäre Suche Auf sortierten Listen können Suchvorgänge effizienter durchgeführt werden 1. Versuch: Naiver Ansatz: Sequentielle Suche auf sortierten Listen: Das bringt nur geringe Verbesserungen für erfolglose Suche. 2. Versuch: Binärsuche Suche nach Schlüssel x in Liste mit aufsteigend sortierten Schlüsseln: Falls Liste leer ist, endet die Suche erfolglos. Sonst: Betrachte Element L[m] an mittlerer Position m. Falls x = L[m] dann ist das gesuchte Element gefunden. Falls x < L[m], dann durchsuche die linke Teilliste von Position 1 bis m-1 nach demselben Verfahren Sonst (x > L[m]) durchsuche die rechte Teilliste von Position m+1 bis Ende nach demselben Verfahren Kosten (Anzahl der Schlüsselvergleiche) für Binärsuche: Verbesserung von O(n) auf O(log n) P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 5
6 Die Funktionen floor und ceiling Funktionen in Mathematica oder C usw. Definition in C: double floor(double x) { Größte ganze Zahl nicht größer als x }. Oder: floor(x) ist der ganzzahlige Anteil von x. Beispiel: floor(3.14) = 3. Andere Notation: floor(x) = x. Eigenschaften: 1. x x < x k+x = k + x (für bel. ganze Zahl k) double ceil(double x) { Kleinste ganze Zahl nicht kleiner als x }. Beispiele: ceiling(2.3) = 3, ceiling(2) = 2 and ceiling( 2.3) = 2. Andere Notation: ceiling(x) = x. Eigenschaften: 1. x x <x+1 2. k = k (für bel. ganze Zahl k) 3. k/2 + k/2 = k (für bel. ganze Zahl k) P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 6
7 Sprungsuche Prinzip der sortierte Datenbestand wird zunächst in Sprüngen überquert, um Abschnitt zu lokalisieren, der ggf. den gesuchten Schlüssel enthält. Einfache Sprungsuche - konstante Sprünge zu Positionen m, 2m, 3m... - Sobald x <= L[i] mit i=j m (j=1,2,...) wird im Abschnitt L[(j-1)m+1] bis L[j m] sequentiell nach dem Suchschlüssel x gesucht. Mittlere Suchkosten ein Sprung koste a; ein sequenzieller Vergleich b Einheiten. Optimale Sprungweite: - falls a=b =>, c avg (n) = Komplexität P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 7
8 Sprungsuche - Details Mittlere Suchkosten : k + 1 Zur Erinnnerung : Bei k Elementen sind die mittleren Suchkosten durch Cavg = gegeben. 2 Hier : Max. Zahl der Sprünge ist n/m aber der letzte Sprung kann gespart werden. Mittlere Sprungkosten also 1 n a 2 m Die Suche im Intervall muss nur über die Positionen 1 b( m 1) 2 Optimale Sprungweite : Betrachte 1 2 ( m 1) = 0 ( j-1) Einsprungstelle ist. Das sind m -1 Positionen. Die Position jm - 2 ist aber die letzte die abgefragt werden muss, wenn man sicher weiß dass der Schlüssel in der Liste gespeichert ist. Bleiben also m - 2 Schlüsselvergleiche und der Beitrag zu C m C avg = a m n m + b m jm 1erfolgen, da die Position jm schon die nächste avg ist somit P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 8
9 Zwei-Ebenen-Sprungsuche Statt sequentieller Suche im lokalisierten Abschnitt wird wiederum eine Quadratwurzel- Sprungsuche angewendet, bevor dann sequenziell gesucht wird Mittlere Kosten: a Kosten eines Sprungs auf der ersten Ebene; b Kosten eines Sprungs auf der zweiten Ebene; c Kosten für einen sequentiellen Vergleich Verbesserung durch optimale Abstimmung der Sprungweiten m 1 und m 2 der beiden Ebenen - Mit a = b = c ergeben sich als optimale Sprungweiten und - mittlere Suchkosten: Verallgemeinerung zu n-ebenen-verfahren ergibt ähnlich günstige Kosten wie Binärsuche. Sprungsuche vorteilhaft, wenn Binärsuche nicht anwendbar ist (z.b. bei blockweisem Einlesen der sortierten Sätze vom Externspeicher) P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 9
10 Exponentielle Suche Anwendung, wenn Länge des Suchbereichs n zunächst unbekannt bzw. sehr groß Vorgehensweise - für Suchschlüssel x wird zunächst obere Grenze für den zu durchsuchenden Abschnitt bestimmt int i = 1; while (x > L[i]) i=2*i; - Für i > 1 gilt für den auf diese Weise bestimmten Suchabschnitt: L[i/2] < x <= L[i] - Suche innerhalb des Abschnitts mit irgendeinem Verfahren Enthält die sortierte Liste nur positive, ganzzahlige Schlüssel ohne Duplikate, wachsen Schlüsselwerte mindestens so stark wie die Indizes i der Elemente => i wird höchstens log 2 x mal verdoppelt, denn die Zahl der Sprünge ist gleich log 2 i. - Bestimmung des gesuchten Intervalls erfordert maximal log 2 x Schlüsselvergleiche. - Suche innerhalb des Abschnitts (z.b. mit Binärsuche) erfordert auch höchstens log 2 x Schlüsselvergleiche Gesamtaufwand O(log 2 x) P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 10
11 Interpolationssuche Schnellere Lokalisierung des Suchbereichs in dem Schlüsselwerte selbst betrachtet werden, um "Abstand" zum Suchschlüssel x abzuschätzen Nächste Suchposition pos wird aus den Werten ug und og der Unter- und Obergrenze des aktuellen Suchbereichs wie folgt berechnet: Sinnvoll, wenn Schlüsselwerte im betreffenden Bereich einigermaßen gleichverteilt - erfordert dann im Mittel lediglich log 2 log 2 n + 1 Schlüsselvergleiche im schlechtesten Fall (stark ungleichmäßige Werteverteilung) entsteht jedoch linearer Suchaufwand (O(n)) P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 11
12 Häufigkeitsgeordnete lineare Listen Sinnvoll, falls die Zugriffshäufigkeiten für die einzelnen Elemente einer Liste sehr unterschiedlich sind Mittlere Suchkosten: c avg (n) = 1 p p p n p n = Σ i p i für Zugriffswahrscheinlichkeiten p i und sequenzieller Suche. Zur Minimierung der Suchkosten sollte Liste direkt so aufgebaut oder umorganisiert werden, daß p 1 p 2... p n Beispiel: Zugriffsverteilung nach Regel 80% der Suchanfragen betreffen 20% des Datenbestandes und von diesen 80% wiederum 80% (also insgesamt 64%) der Suchanfragen richten sich an 20% von 20% (insgesamt 4%) der Daten Erwarteter Suchaufwand c avg (n) =??? Da Zugriffshäufigkeiten meist vorab nicht bekannt sind, werden selbstorganisierende (adaptive) Listen benötigt. P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 12
13 Selbstorganisierende Listen 1 Nützlich, falls häufig gleiche Objekte gesucht werden (Beispiel: Suchbegriffe bei Suchmaschinen) Gesucht wird immer sequenziell von vorn. Die Reihenfolge der Objekte in der Liste passt sich dem Suchverhalten an. Ansatz 1: FC-Regel (Frequency count) - Führen von Häufigkeitszählern pro Element - Jeder Zugriff auf ein Element erhöht dessen Häufigkeitszähler um 1 - falls erforderlich, wird danach die Liste lokal neu geordnet, so dass die Häufigkeitszähler der Elemente eine absteigende Reihenfolge bilden - hoher Wartungsaufwand und Speicherplatzbedarf P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 13
14 Selbstorganisierende Listen 2 Ansatz 2: T-Regel (Transpose) - das Zielelement eines Suchvorgangs wird dabei mit dem unmittelbar vorangehenden Element vertauscht - häufig referenzierte Elemente wandern (langsam) an den Listenanfang Ansatz 3: MF-Regel (Move-to-Front) - Zielelement eines Suchvorgangs wird nach jedem Zugriff an die erste Position der Liste gesetzt - relative Reihenfolge der übrigen Elemente bleibt gleich - in jüngster Vergangenheit referenzierte Elemente sind am Anfang der Liste (Lokalität kann gut genutzt werden) P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 14
15 Auswahlproblem Aufgabe. Finde das i-kleinste Element in einer Liste L mit n Elementen - Spezialfälle: kleinstes, zweitkleinstes, Element, mittlerer Wert (Median) trivial bei sortierter Liste Bei unsortierter Liste: Minimum/Maximum-Bestimmung hat lineare Kosten O(n) Einfache Lösung für i-kleinstes Element: j := 0 solange j < i: Bestimme kleinstes Element in L und entferne es aus L ; erhöhe j um 1 gib Minimum der Restliste als Ergebnis zurück Komplexität für nichttriviales i: O(n 2 ) Es geht aber besser. P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 15
16 Teile und Herrsche (Divide-and-Conquer) Allgemeines Verfahren, um große Probleme schneller zu lösen: 1. Zerlege das Problem in zwei oder mehrere Teilprobleme. 2. Löse jedes Teilproblem einzeln, und zwar rekursiv nach der gleichen Methode. 3. Konstruiere die Gesamtlösung aus den Teillösungen. Dieses Verfahren wird in Schritt 2 rekursiv angewendet, bis hinreichend triviale Probleme vorliegen, die sich mit anderen Mitteln lösen lassen. Frage: Wieso lässt sich damit die Komplexität verringern? Sehen wir uns zunächst Beispiele an. P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 16
17 Teile und Herrsche 1: Suche in sortierter Liste Sequenzielle Suche -> Binärsuche Teilungsschritt: Die Liste wird in der Mitte geteilt Triviale Liste: Liste der Länge 1, wird mit sequenzieller Suche durchsucht. Gesamtlösung: Erfolgreich, falls in einem Teil gefunden. Unser Algorithmus zur Binärsuche lässt sich umformen zu: Falls die Liste die Länge 1 hat: Prüfe, ob es sich um das gesuchte Element handelt und gib JA oder NEIN zurück. Sonst Zerlege die Liste in der Mitte und prüfe durch Vergleich des gesuchten Elements mit der Trennstelle, in welcher Hälfte das gesuchte Element liegen muss. Wende diesen Algorithmus rekursiv auf diese Teilliste an. Verbesserung der Zeitkomplexität von O(n) zu O(log n) P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 17
18 Teile und Herrsche 2: Berechnung der maximalen Teilsumme Wir können wieder die gegebene Folge in zwei Teile zerlegen und die maximalen Teilsummen für beide Teile bestimmen. ABER: Die maximale Teilfolge könnte gerade die Schnittstelle einschließen. DESHALB: Zusätzliche Größen: Rechtes und linkes Randmaximum einer Folge F rechte Randfolge von F = Teilfolge von F, die bis zum rechten Rand (Ende) von F reicht rechtes Randmaximum von F: maximale Summe aller rechten Randfolgen analog: linke Randfolge, linkes Randmaximum P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 18
19 Teile und Herrsche 2: Berechnung der maximalen Teilsumme Rekursiver (Divide-and-Conquer-) Algorithmus für maximale Teilsumme - falls Eingabefolge F nur aus einer Zahl z besteht, nimm Max(z,0) - falls F wenigstens 2 Elemente umfasst: - zerlege F in etwa zwei gleich große Hälften links und rechts - bestimme maximale Teilsumme, ml, sowie rechtes Randmaximum, rr, von links - bestimme maximale Teilsumme, mr, sowie linkes Randmaximum, lr, von rechts - das Maximum der drei Zahlen ml, rr+lr, und mr ist die maximale Teilsumme von F Komplexitätsverbesserung? P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 19
20 Teile und Herrsche 3: Auswahlproblem Suche i-kleinstes Element von n paarweise unterschiedlichen Elementen 1. bestimme Pivot-Element p 2. Teile die n Elemente bezüglich p in 2 Gruppen: Gruppe 1 enthält die k Elemente <p; Gruppe 2 die n-k-1 Elemente >p sind 3. falls i=k+1, dann ist p das Ergebnis. falls i <= k wende das Verfahren rekursiv auf Gruppe 1 an; falls i > k+1: verwende Verfahren rekursiv zur Bestimmung des i-(k+1)-te Element in Gruppe 2 Laufzeit: In Schritt 2 wird die ganze verbleibende Liste durchlaufen. Im ersten Durchlauf n, im zweiten ca. n/2, dann ca. n/4 usw., insgesamt ca. 2n, also O(n). Verbesserung von O(n 2 ) zu O(n) P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 20
21 Teile und Herrsche 4 Weitere Beispiele folgen beim Thema Sortieren, z.b. Quicksort. Frage: In welchem Sinne war unsere schnelle Multiplikation eine Anwendung von Teile-und-Herrsche? P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 21
22 Komplexitätsreduktion bei Teile und Herrsche Angenommen, wir wollen ein Problem der Größe n = 2 r lösen. Beobachtungen Die maximale Rekursionstiefe ist r = log 2 n Die Anzahl der Teilprobleme in Rekursionstiefe k ist 2 k. Muss in jeder Tiefe nur ein Problem gelöst werden (wie z.b. beim Suchen), so sind es insgesamt r = log 2 n Stück. Muss jedes Teilproblem gelöst werden, so sind n elementare Probleme zu lösen und diese Lösungen zu verknüpfen. Das macht speziell Sinn für Probleme der Komplexität O(n 2 ) oder schlechter (z.b. maximale Teilsumme) Der Faktor log n bei der Komplexität entsteht auf natürliche Weise durch Teileund-Herrsche Frage: Erklären Sie damit, dass Teile-und-Herrsche keine Verbesserung bei sequenzieller Suche in einer ungeordneten Liste bringt. P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 22
23 Zusammenfassung: Suchen Sequentielle Suche - Default-Ansatz zur Suche - lineare Kosten O(n) Binärsuche - setzt Sortierung voraus - Teile-und-Herrsche-Strategie - wesentlich schneller als sequentielle Suche - Komplexität: O(log n) Weitere Suchverfahren auf sortierten Arrays für Sonderfälle - Sprungsuche - exponentielle Suche - Interpolationssuche Auswahlproblem - auf unsortierter Eingabe mit linearen Kosten lösbar P. Stadler Algorithmen und Datenstrukturen 1 - WS 06/07 23
ADS: Algorithmen und Datenstrukturen
.. ADS: Algorithmen und Datenstrukturen Zweite Vorlesung Uwe Quasthoff Abteilung Automatische Sprachverarbeitung Institut für Informatik Universität Leipzig 19. Oktober 2011 Einfache Suchverfahren Lineare
2. Einfache Suchverfahren. Beispiel-Spezifikation in Java. Lineare Listen (2) Lineare Listen Sequentielle Suche Binäre Suche
Lineare Listen Sequentielle Suche Binäre Suche. Einfache Suchverfahren Weitere Suchverfahren auf sortierten Feldern - Fibonacci-Suche - Sprungsuche - Exponentielle Suche - Interpolationssuche Auswahlproblem
ADS: Algorithmen und Datenstrukturen
ADS: Algorithmen und Datenstrukturen Zweiter Akt Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität
2. Einfache Suchverfahren
Lineare Listen Sequentielle Suche Binäre Suche. Einfache Suchverfahren Weitere Suchverfahren auf sortierten Feldern - Fibonacci-Suche - Sprungsuche - Exponentielle Suche - Interpolationssuche Auswahlproblem
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 3 Suchen in Listen Version vom: 15. November 2016
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg
Algorithmen und Datenstrukturen 1-1. Seminar -
Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik [email protected] [email protected] Merge-Sort Anwendbar für
Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern
Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern [email protected] 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische
Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.
2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert
Algorithmen und Datenstrukturen I Grundlagen
Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] 4. Sortierverfahren Elementare Sortierverfahren - Sortieren durch
Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben
Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge
Algorithmen und Datenstrukturen I. Grundlagen. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Algorithmen und Datenstrukturen I Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Algorithmus..................................... 2 Problem
3.2. Divide-and-Conquer-Methoden
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch
Komplexität von Algorithmen:
Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine
Abschnitt 19: Sortierverfahren
Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758
ADS: Algorithmen und Datenstrukturen
ADS: Algorithmen und Datenstrukturen Teil X Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 13.
Fibonacci-Suche. Informatik I. Fibonacci-Suche. Fibonacci-Suche. Einführung. Rainer Schrader. 24. Mai 2005
Fibonacci-Suche Informatik I Einführung Rainer Schrader Zentrum für Angewandte Informatik Köln 4. Mai 005 Grundidee wie bei der Binärsuche, aber andere Aufteilung Fibonacci-Zahlen: F 0 = 0 F 1 = 1 F m
Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele
Suchen und Sortieren
Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles
Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.
Das Suchproblem Gegeben Menge von Datensätzen. 3. Suchen Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle Jeder Datensatz hat einen Schlüssel k. Schlüssel sind vergleichbar: eindeutige Antwort auf
Kapitel 2. Weitere Beispiele Effizienter Algorithmen
Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte
Zeitkomplexität beim Suchen und Sortieren
Zeitkomplexität beim Suchen und Sortieren Thomas Schwotzer 1 Einführung Programmieren bedeutet nahezu immer Algorithmen schreiben. Die Algorithmen, die wir entwickeln arbeiten mit Daten. Wir testen die
Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (25 Sortieren vorsortierter Daten)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (25 Sortieren vorsortierter Daten) 1 Untere Schranke für allgemeine Sortierverfahren Satz Zum Sortieren einer Folge von n Schlüsseln mit einem allgemeinen
Grundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung
Übung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.
Elementare Sortierverfahren
Algorithmen und Datenstrukturen I Elementare Sortierverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Sortieren.......................................
Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 10. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] Suchverfahren für große Datenmengen bisher betrachtete Datenstrukturen
9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion
Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen
Algorithmen und Datenstrukturen Suchen
Algorithmen und Datenstrukturen Suchen Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren, Suchen, Optimieren
Suchen und Sortieren
Ideen und Konzepte der Informatik [Ordnung ist das halbe Leben] Kurt Mehlhorn (viele Folien von Kostas Panagiotou) Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Gerechtigkeit?
Grundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Grundlegende Sortieralgorithmen auf Reihungen kennen
Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Geometrisches Problem: Problem: Nächstes Paar Eingabe: n Punkte in der Ebene Ausgabe: Das Paar q,r mit geringstem Abstand
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale
JAVA - Suchen - Sortieren
Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik
Suchen und Sortieren
Ideen und Konzepte der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn (viele Folien von Kostas Panagiotou) Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?
Humboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
Sortieren II / HeapSort Heaps
Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: [email protected] Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php
6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.
Algorithmen und Datenstrukturen 132 6 Quicksort In diesem Abschnitt wird Quicksort, ein weiterer Sortieralgorithmus, vorgestellt. Trotz einer eher langsamen Worst-Case Laufzeit von Θ(n 2 ) ist Quicksort
19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Untere Schranken für Sortieren Sortieren mit linearem Aufwand Mediane und Ranggrössen 2 Wie schnell können wir sortieren?
14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 14. Sortieren II 14.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 397 398 Heapsort [Max-]Heap 7 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum
Informatik I 4. Kapitel Suchen in sequentiellen Listen
Informatik I 4. Kapitel Rainer Schrader Zentrum für Angewandte Informatik Köln 21. Mai 2008 1 / 55 2 / 55 Szenario Suchen in Daten gehört zu den wichtigsten Operationen etwa Suchen nach: Stichworten in
Grundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch Sortieren in Java Man kann Sortierverfahren in einem imperativem oder einem objektorientierten Stil programmieren.
Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8
ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1
4. Sortieren 4.1 Vorbemerkungen
. Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig
Algorithmische Techniken für Geometrische Probleme
Algorithmische Techniken für Geometrische Probleme Berthold Vöcking 14. Juni 2007 Inhaltsverzeichnis 1 Die Sweepline-Technik 2 1.1 Schnitte orthogonaler Liniensegmente............... 2 1.2 Schnitte beliebiger
Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable
Suchen lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Welche Nummer hat Herr Meier? Enthält Einträge (Elemente) der Form : Name, Vorname
Klausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Wintersemester 2013/2014 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und
1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner. Musterlösung Problem : Average-case-Laufzeit vs. Worst-case-Laufzeit ** (a) Im schlimmsten Fall werden für jedes Element
NAME, VORNAME: Studiennummer: Matrikel:
TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.
Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
Die asymptotische Notation
Die asymptotische Notation f, g : N R 0 seien Funktionen, die einer Eingabelänge n N eine nicht-negative Laufzeit f (n), bzw. g(n) zuweisen. Asymptotik 1 / 9 Die asymptotische Notation f, g : N R 0 seien
Abschnitt 7: Komplexität von imperativen Programmen
Abschnitt 7: Komplexität von imperativen Programmen 7. Komplexität von imperativen Programmen 7 Komplexität von imperativen Programmen Einf. Progr. (WS 08/09) 399 Ressourcenbedarf von Algorithmen Algorithmen
Grundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 01/05 2 Ziele Grundlegende Sortieralgorithmen auf Reihungen kennen lernen 3 Klassifizierung
Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt
Divide and Conquer Das Divide - and - Conquer Prinzip Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt 2 Quicksort: Sortieren durch Teilen
8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit
Heapsort, Quicksort, Mergesort. 8. Sortieren II
209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 211 Heapsort Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:
Wiederholung. Divide & Conquer Strategie
Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in
Algorithmen und Datenstrukturen 12
12. Juli 2012 1 Besprechung Blatt 11 Fragen 2 Binary Search Binäre Suche in Arrays Binäre Suchbäume (Binary Search Tree) 3 Sortierverfahren Allgemein Heapsort Bubblesort Insertionsort Mergesort Quicksort
Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
7. Sortieren Lernziele. 7. Sortieren
7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche
Suchen und Sortieren
Ideen und Konzepte der Informatik Suchen und Sortieren Ordnung ist das halbe Leben Antonios Antoniadis (Basierend auf Folien von Kurt Mehlhorn und Konstantinos Panagiotou) 6. November 2017 6. November
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach
Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO
Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:
Einstieg in die Informatik mit Java
1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking
Grundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
Datenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 9. Sortieren
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 9 Sortieren Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040 Linz Sortieren :: Problemstellung
Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen
Geometrie II. Deniz Neufeld Deniz Neufeld Geometrie II / 39
Geometrie II Deniz Neufeld 20.06.2016 Deniz Neufeld Geometrie II 20.06.2016 1 / 39 Ziel Umgehen mit großen, mehrdimensionalen Datenmengen Bereichssuche Nearest-Neighbour-Search Mehrdimensionale Datenverarbeitung
Programmieren und Problemlösen
Dennis Komm Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 27. Februar 2019 Komplexität von Algorithmen Aufgabe Primzahltest Schreibe ein Programm, das eine ganze Zahl x als Eingabe
Übung: Algorithmen und Datenstrukturen SS 2007
Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung
Informatik II Skip-Lists & selbstorganisierende Listen (als Bsp. für randomisierte Algos und selbstorganisierende Datenstrukturen)
lausthal Informatik II Skip-Lists & selbstorganisierende Listen (als Bsp. für randomisierte Algos und selbstorganisierende Datenstrukturen). Zachmann lausthal University, ermany [email protected]
