Princeton University

Algorithmen, Teil II

Robert Sedgewick
Kevin Wayne

Dozenten: Robert Sedgewick

329.779 bereits angemeldet

Verschaffen Sie sich einen Einblick in ein Thema und lernen Sie die Grundlagen.
4.9

(2,011 Bewertungen)

Stufe Mittel
Einige einschlägige Kenntnisse erforderlich
Flexibler Zeitplan
Ca. 62 Stunden
In Ihrem eigenen Lerntempo lernen
96%
Den meisten Lernenden hat dieser Kurs gefallen
Verschaffen Sie sich einen Einblick in ein Thema und lernen Sie die Grundlagen.
4.9

(2,011 Bewertungen)

Stufe Mittel
Einige einschlägige Kenntnisse erforderlich
Flexibler Zeitplan
Ca. 62 Stunden
In Ihrem eigenen Lerntempo lernen
96%
Den meisten Lernenden hat dieser Kurs gefallen

Kompetenzen, die Sie erwerben

  • Kategorie: Mathematik und mathematische Modellierung
  • Kategorie: Fortgeschrittene Mathematik
  • Kategorie: Graphentheorie
  • Kategorie: Computerprogrammierung
  • Kategorie: Informatik
  • Kategorie: Theoretische Informatik
  • Kategorie: Algorithmen
  • Kategorie: Datenstrukturen

Wichtige Details

Bewertungen

13 Aufgaben

Unterrichtet in Englisch

Erfahren Sie, wie Mitarbeiter führender Unternehmen gefragte Kompetenzen erwerben.

Platzhalter

In diesem Kurs gibt es 14 Module

Willkommen bei Algorithmen, Teil II.

Das ist alles enthalten

1 Video2 Lektüren

Wir definieren einen ungerichteten Graphen API und betrachten die Darstellungen der Adjazenzmatrix und der Adjazenzlisten. Wir stellen zwei klassische Algorithmen für die Suche in einem Graphen vor - die Tiefensuche und die Breitensuche. Wir betrachten auch das Problem der Berechnung von verbundenen Komponenten und schließen mit verwandten Problemen und Anwendungen.

Das ist alles enthalten

6 Videos2 Lektüren1 Aufgabe

In dieser Vorlesung untersuchen wir gerichtete Graphen. Wir beginnen mit der Deep-First-Suche und der Broadth-First-Suche in Digraphen und beschreiben Anwendungen von der Müllabfuhr bis zum Web-Crawling. Anschließend stellen wir einen auf der Tiefensuche basierenden Algorithmus zur Berechnung der topologischen Ordnung eines azyklischen Digraphen vor. Schließlich implementieren wir den Kosaraju-Sharir-Algorithmus zur Berechnung der starken Komponenten eines Digraphen.

Das ist alles enthalten

5 Videos1 Lektüre1 Aufgabe1 Programmieraufgabe

In dieser Vorlesung untersuchen wir das Problem des minimalen Spannbaums. Wir beginnen mit der Betrachtung eines generischen gierigen Algorithmus für dieses Problem. Als nächstes betrachten wir zwei klassische Algorithmen für das Problem - Kruskal's Algorithmus und Prim's Algorithmus - und implementieren sie. Wir schließen mit einigen Anwendungen und offenen Problemen.

Das ist alles enthalten

6 Videos2 Lektüren1 Aufgabe

In dieser Vorlesung untersuchen wir Probleme mit kürzesten Wegen. Wir beginnen mit der Analyse einiger grundlegender Eigenschaften von kürzesten Wegen und einem generischen Algorithmus für dieses Problem. Wir stellen Dijkstras Algorithmus für Probleme mit kürzesten Wegen mit nichtnegativen Gewichten vor und analysieren ihn. Als nächstes betrachten wir einen noch schnelleren Algorithmus für DAGs, der auch dann funktioniert, wenn die Gewichte negativ sind. Wir schließen mit dem Bellman-Ford-Moore-Algorithmus für kantengewichtete Digraphen ohne negative Zyklen. Wir betrachten auch Anwendungen, die von inhaltsbezogenem Füllen bis zu Arbitrage reichen.

Das ist alles enthalten

5 Videos1 Lektüre1 Aufgabe1 Programmieraufgabe

In dieser Vorlesung stellen wir die Probleme des maximalen Flusses und des minimalen Schnitts vor. Wir beginnen mit dem Ford-Fulkerson-Algorithmus. Um seine Korrektheit zu analysieren, stellen wir das Maxflow-Mincut-Theorem auf. Als Nächstes betrachten wir eine effiziente Implementierung des Ford-Fulkerson-Algorithmus, die die Regel des kürzesten augmentierenden Pfades verwendet. Schließlich betrachten wir Anwendungen, darunter Bipartite Matching und Baseball-Elimination.

Das ist alles enthalten

6 Videos2 Lektüren1 Aufgabe1 Programmieraufgabe

In dieser Vorlesung betrachten wir spezialisierte Sortieralgorithmen für Strings und verwandte Objekte. Wir beginnen mit einem Unterprogramm zum Sortieren ganzer Zahlen in einem kleinen Bereich. Dann betrachten wir zwei klassische Radix-Sortieralgorithmen - LSD und MSD Radix-Sorts. Als nächstes betrachten wir eine besonders effiziente Variante, eine Mischung aus MSD-Radixsortierung und Quicksort, die als 3-Wege-Radix-Quicksort bekannt ist. Wir schließen mit Suffixsortierung und verwandten Anwendungen.

Das ist alles enthalten

6 Videos1 Lektüre1 Aufgabe

In dieser Vorlesung betrachten wir spezialisierte Algorithmen für Symboltabellen mit String-Schlüsseln. Unser Ziel ist eine Datenstruktur, die so schnell wie Hashing und noch flexibler als binäre Suchbäume ist. Wir beginnen mit Multiway-Versuchen; als nächstes betrachten wir ternäre Suchversuche. Schließlich betrachten wir zeichenbasierte Operationen, einschließlich Präfixübereinstimmung und längstes Präfix, sowie verwandte Anwendungen.

Das ist alles enthalten

3 Videos2 Lektüren1 Aufgabe

In dieser Vorlesung betrachten wir Algorithmen für die Suche nach einer Teilzeichenkette in einem Textstück. Wir beginnen mit einem Brute-Force-Algorithmus, dessen Laufzeit im schlimmsten Fall quadratisch ist. Als nächstes betrachten wir den genialen Knuth-Morris-Pratt-Algorithmus, dessen Laufzeit im schlimmsten Fall garantiert linear ist. Dann stellen wir den Boyer-Moore-Algorithmus vor, dessen Laufzeit bei typischen Eingaben sublinear ist. Schließlich betrachten wir den Rabin-Karp-Fingerprint-Algorithmus, der auf clevere Weise Hashing verwendet, um die Teilstringsuche und verwandte Probleme zu lösen.

Das ist alles enthalten

5 Videos1 Lektüre1 Aufgabe1 Programmieraufgabe

Ein regulärer Ausdruck ist eine Methode zur Angabe einer Menge von Zeichenketten. Unser Thema in dieser Vorlesung ist der berühmte grep-Algorithmus, der feststellt, ob ein bestimmter Text eine beliebige Teilzeichenkette aus der Menge enthält. Wir untersuchen eine effiziente Implementierung, die unsere Digraphen-Erreichbarkeitsimplementierung aus Woche 1 nutzt.

Das ist alles enthalten

5 Videos2 Lektüren1 Aufgabe

Wir untersuchen und implementieren mehrere klassische Datenkompressionsverfahren, darunter Run-Length Coding, Huffman-Kompression und LZW-Kompression. Wir entwickeln effiziente Implementierungen von Grund auf, indem wir eine Java-Bibliothek für die Manipulation von Binärdaten verwenden, die wir zu diesem Zweck entwickelt haben und die auf Implementierungen von Prioritätswarteschlangen und Symboltabellen aus früheren Vorlesungen basiert.

Das ist alles enthalten

4 Videos1 Lektüre1 Aufgabe1 Programmieraufgabe

Unsere Vorlesungen in dieser Woche konzentrieren sich auf die Idee von Problemlösungsmodellen wie Maxflow und kürzester Weg, wobei ein neues Problem als Instanz eines dieser Probleme formuliert und dann mit einem klassischen und effizienten Algorithmus gelöst werden kann. Zum Abschluss des Kurses beschreiben wir das klassische ungelöste Problem aus der theoretischen Informatik, das sich auf das Konzept der Effizienz von Algorithmen konzentriert und uns bei der Suche nach effizienten Lösungen für schwierige Probleme leitet.

Das ist alles enthalten

4 Videos2 Lektüren1 Aufgabe

Die Quintessenz des Problemlösungsmodells ist die lineare Programmierung, und die Simplex-Methode zu ihrer Lösung ist einer der am häufigsten verwendeten Algorithmen. In dieser Vorlesung geben wir einen Überblick über dieses zentrale Thema des Operations Research und beschreiben seine Beziehung zu den Algorithmen, die wir betrachtet haben.

Das ist alles enthalten

4 Videos1 Lektüre1 Aufgabe

Gibt es ein universelles Problemlösungsmodell, auf das sich alle Probleme, die wir lösen möchten, reduzieren lassen und für das wir einen effizienten Algorithmus kennen? Sie werden vielleicht überrascht sein, dass wir die Antwort auf diese Frage nicht kennen. In dieser Vorlesung führen wir die Komplexitätsklassen P, NP und NP-vollständig ein, stellen die berühmte P = NP-Frage und betrachten die Implikationen im Zusammenhang mit den Algorithmen, die wir in diesem Kurs behandelt haben.

Das ist alles enthalten

6 Videos1 Lektüre1 Aufgabe

Dozenten

Lehrkraftbewertungen
4.8 (291 Bewertungen)
Robert Sedgewick
Princeton University
7 Kurse1.887.229 Lernende
Kevin Wayne
Princeton University
5 Kurse1.841.134 Lernende

von

Empfohlen, wenn Sie sich für Algorithmen interessieren

Warum entscheiden sich Menschen für Coursera für ihre Karriere?

Felipe M.
Lernender seit 2018
„Es ist eine großartige Erfahrung, in meinem eigenen Tempo zu lernen. Ich kann lernen, wenn ich Zeit und Nerven dazu habe.“
Jennifer J.
Lernender seit 2020
„Bei einem spannenden neuen Projekt konnte ich die neuen Kenntnisse und Kompetenzen aus den Kursen direkt bei der Arbeit anwenden.“
Larry W.
Lernender seit 2021
„Wenn mir Kurse zu Themen fehlen, die meine Universität nicht anbietet, ist Coursera mit die beste Alternative.“
Chaitanya A.
„Man lernt nicht nur, um bei der Arbeit besser zu werden. Es geht noch um viel mehr. Bei Coursera kann ich ohne Grenzen lernen.“

Bewertungen von Lernenden

4.9

2.011 Bewertungen

  • 5 stars

    93,59 %

  • 4 stars

    5,21 %

  • 3 stars

    0,49 %

  • 2 stars

    0,24 %

  • 1 star

    0,44 %

Zeigt 3 von 2011 an

AK
5

Geprüft am 16. Apr. 2019

PJ
5

Geprüft am 29. Aug. 2020

MP
5

Geprüft am 12. Jan. 2024

Platzhalter

Neue Karrieremöglichkeiten mit Coursera Plus

Unbegrenzter Zugang zu 10,000+ Weltklasse-Kursen, praktischen Projekten und berufsqualifizierenden Zertifikatsprogrammen - alles in Ihrem Abonnement enthalten

Bringen Sie Ihre Karriere mit einem Online-Abschluss voran.

Erwerben Sie einen Abschluss von erstklassigen Universitäten – 100 % online

Schließen Sie sich mehr als 3.400 Unternehmen in aller Welt an, die sich für Coursera for Business entschieden haben.

Schulen Sie Ihre Mitarbeiter*innen, um sich in der digitalen Wirtschaft zu behaupten.

Häufig gestellte Fragen