Princeton University

Algorithmen, Teil II

Unterrichtet auf Englisch

Einige Inhalte können nicht übersetzt werden

322.846 bereits angemeldet

Kurs

Informieren Sie sich über ein Thema und erlernen Sie die Grundlagen.

Robert Sedgewick
Kevin Wayne

Dozenten: Robert Sedgewick

4.9

(1,988 Bewertungen)

Stufe Mittel
Einige einschlägige Kenntnisse erforderlich
Es dauert 62 Stunden
3 Wochen bei 20 Stunden pro Woche
Flexibler Zeitplan
In Ihrem eigenen Lerntempo lernen

Kompetenzen, die Sie erwerben

  • Kategorie: Diagramme
  • Kategorie: Datenstruktur
  • Kategorie: Algorithmen
  • Kategorie: Datenkomprimierung

Wichtige Details

Bewertungen

13 Quizzes

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 Quiz

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 Quiz1 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 Quiz

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 Quiz1 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 Quiz1 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 Quiz

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 Quiz

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 Quiz1 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 Quiz

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 Quiz1 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 Quiz

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 Quiz

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 Quiz

Dozenten

Lehrkraftbewertungen
4.8 (285 Bewertungen)
Robert Sedgewick
Princeton University
7 Kurse1.827.324 Lernende
Kevin Wayne
Princeton University
5 Kurse1.782.345 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

Zeigt 3 von 1988

4.9

1.988 Bewertungen

  • 5 stars

    93,67 %

  • 4 stars

    5,12 %

  • 3 stars

    0,50 %

  • 2 stars

    0,25 %

  • 1 star

    0,45 %

XZ
5

Geprüft am 7. Feb. 2020

MS
5

Geprüft am 27. Feb. 2021

AK
5

Geprüft am 16. Apr. 2019

Platzhalter

Neue Karrieremöglichkeiten mit Coursera Plus

Unbegrenzter Zugang zu über 7.000 erstklassigen Kursen, praktischen Projekten und Zertifikatsprogrammen, die Sie auf den Beruf vorbereiten – 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