Princeton University
Алгоритмы, часть I

Ce cours n'est pas disponible en Français (France)

Nous sommes actuellement en train de le traduire dans plus de langues.
Princeton University

Алгоритмы, часть I

Robert Sedgewick
Kevin Wayne

Instructeurs : Robert Sedgewick

12 193 déjà inscrits

Obtenez un aperçu d'un sujet et apprenez les principes fondamentaux.
4.8

(75 avis)

niveau Intermédiaire
Certaines connaissances prérequises
53 heures pour terminer
3 semaines à 17 heures par semaine
Planning flexible
Apprenez à votre propre rythme
Obtenez un aperçu d'un sujet et apprenez les principes fondamentaux.
4.8

(75 avis)

niveau Intermédiaire
Certaines connaissances prérequises
53 heures pour terminer
3 semaines à 17 heures par semaine
Planning flexible
Apprenez à votre propre rythme

Compétences que vous acquerrez

  • Catégorie : Symbol Table
  • Catégorie : Binary Search Tree
  • Catégorie : Binary Search Algorithm
  • Catégorie : 2 3 tree

Détails à connaître

Évaluations

10 devoirs

Enseigné en Russe

Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées

Emplacement réservé

Il y a 13 modules dans ce cours

Введение в алгоритмы, часть I.

Inclus

1 vidéo2 lectures

Мы демонстрируем наш базовый подход к разработке и анализу алгоритмов через рассмотрение проблемы динамической связности. Мы представляем тип данных непересекающихся множеств и рассматриваем несколько вариантов его реализации (быстрый поиск, быстрое объединение, взвешенное быстрое объединение и взвешенное быстрое объединение со сжатием пути). Наконец, мы применяем тип данных непересекающихся множеств для решения проблемы перколяции из физической химии.

Inclus

5 vidéos2 lectures1 devoir1 devoir de programmation

В основе нашего подхода к анализу эффективности алгоритмов лежит научный метод. Начнем с вычислительных экспериментов для измерения времени выполнения наших программ. Мы применяем эти измерения для формирования гипотез об эффективности. Затем мы составляем математические модели, объясняющие поведение алгоритмов. Наконец, мы рассмотрим анализ использования памяти нашими программами на Java.

Inclus

6 vidéos1 lecture1 devoir

Мы рассмотрим два фундаментальных типа данных для хранения коллекций объектов: стек и очередь. Каждый из них реализуется с помощью односвязного списка или массива изменяющегося размера. Мы представим две продвинутые функции Java, упрощающие клиентский код: обобщенные коллекции и итераторы. Наконец, будут рассмотрены различные применения стеков и очередей, начиная от разбора арифметических выражений и заканчивая моделированием систем массового обслуживания.

Inclus

6 vidéos2 lectures1 devoir1 devoir de programmation

Мы познакомим вас с проблемой сортировки и интерфейсом Comparable Java. Мы изучим два элементарных метода сортировки (сортировку выбором и сортировку вставкой), а также разновидность одного из них — сортировку методом Шелла. Также мы рассмотрим два алгоритма для равномерного перемешивания массива. В завершение мы продемонстрируем применение сортировки на практике для вычисления выпуклой оболочки множества точек с помощью алгоритма сканирования Грэма.

Inclus

6 vidéos1 lecture1 devoir

Мы изучим алгоритм сортировки с объединением и покажем, что он позволяет отсортировать любой массив из n элементов с максимальным количество сравнений n lg n. Также будет рассмотрена нерекурсивная версия этого алгоритма («снизу вверх»). Мы докажем, что любой алгоритм сортировки, основанный на сравнении, в худшем случае должен выполнить не менее n lg n сравнений. Мы обсудим применение различных схем упорядочения сортируемых объектов и связанную с этим концепцию устойчивости.

Inclus

5 vidéos2 lectures1 devoir1 devoir de programmation

Мы изучим и реализуем алгоритм рандомизированной быстрой сортировки и проанализируем его эффективность. Кроме того, рассмотрим рандомизированный быстрый выбор — вариант быстрой сортировки, находящий k-й наименьший элемент за линейное время. В завершение мы рассмотрим 3-направленную быструю сортировку — вариант быстрой сортировки, особенно хорошо работающий при наличии дублирующихся ключей.

Inclus

4 vidéos1 lecture1 devoir

Мы представляем тип данных «приоритизированная очередь» и его эффективную реализацию с помощью структуры данных «бинарная куча». Эта реализация также является основой эффективного алгоритма кучевой сортировки. В завершение мы познакомимся с применением приоритизированных очередей. В частности, мы смоделируем движение объекта, состоящего из n частичек, по законам упругих столкновений.

Inclus

4 vidéos2 lectures1 devoir1 devoir de programmation

Мы зададим API для таблиц символов (также известных как ассоциативные массивы, карты или словари) и опишем две элементарные реализации с использованием отсортированного массива (бинарный поиск) и неупорядоченного списка (последовательный поиск). Если ключи имеют тип Comparable, мы зададим расширенный API, включающий дополнительные методы минимума и максимума, нижнего и верхнего предела, ранжирования и выбора. Для разработки эффективной реализации этого API мы изучим структуру данных «бинарное дерево поиска» и проанализируем ее эффективность.

Inclus

6 vidéos1 lecture1 devoir

В этой лекции наша цель состоит в создании таблицы символов с гарантированной логарифмической эффективностью поиска и вставки (а также множества других операций). Мы начнем с рассмотрения 2-3-деревьев, которые легко анализировать, но сложно реализовать. Затем рассмотрим красно-черные бинарные деревья поиска, которые послужат новым способом реализации 2-3-деревьев в виде бинарных деревьев поиска. Наконец мы представим B-деревья — обобщение 2-3-деревьев, широко применяющееся при реализации файловых систем.

Inclus

3 vidéos2 lectures1 devoir

Мы начнем с поиска в 1-мерных и 2-мерных диапазонах, цель которого — найти все точки в заданном 1-мерном или 2-мерном диапазоне. Для выполнения данной задачи рассмотрим k-мерные деревья — естественное обобщение БДП, ключи которого — точки на плоскости (или в пространствах более высокого порядка). Также рассмотрим проблемы пересечений, когда требуется найти все пересечения среди множества отрезков или прямоугольников.

Inclus

5 vidéos1 lecture1 devoir de programmation

Вначале мы опишем желательные свойства хэш-функции и ее реализацию в Java, включая фундаментальное допущение о равномерности хэширования, определяющее потенциальную успешность хэширования. Затем рассмотрим две стратегии реализации хэш-таблиц — раздельное связывание цепочками и линейное исследование. Обе стратегии имеют постоянную по времени эффективность поиска и вставки при удовлетворении допущения о равномерности хэширования.

Inclus

4 vidéos2 lectures1 devoir

Рассмотрим различные практические области применения таблиц символов, включая множества, клиенты словарей, клиенты индексирования и разреженные векторы.

Inclus

4 vidéos1 lecture

Instructeurs

Évaluations de l’enseignant
4.8 (14 évaluations)
Robert Sedgewick
Princeton University
7 Cours1 863 958 apprenants
Kevin Wayne
Princeton University
5 Cours1 818 242 apprenants

Offert par

Princeton University

Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?

Felipe M.
Étudiant(e) depuis 2018
’Pouvoir suivre des cours à mon rythme à été une expérience extraordinaire. Je peux apprendre chaque fois que mon emploi du temps me le permet et en fonction de mon humeur.’
Jennifer J.
Étudiant(e) depuis 2020
’J'ai directement appliqué les concepts et les compétences que j'ai appris de mes cours à un nouveau projet passionnant au travail.’
Larry W.
Étudiant(e) depuis 2021
’Lorsque j'ai besoin de cours sur des sujets que mon université ne propose pas, Coursera est l'un des meilleurs endroits où se rendre.’
Chaitanya A.
’Apprendre, ce n'est pas seulement s'améliorer dans son travail : c'est bien plus que cela. Coursera me permet d'apprendre sans limites.’
Emplacement réservé

Ouvrez de nouvelles portes avec Coursera Plus

Accès illimité à plus de 7 000 cours de renommée internationale, à des projets pratiques et à des programmes de certificats reconnus sur le marché du travail, tous inclus dans votre abonnement

Faites progresser votre carrière avec un diplôme en ligne

Obtenez un diplôme auprès d’universités de renommée mondiale - 100 % en ligne

Rejoignez plus de 3 400 entreprises mondiales qui ont choisi Coursera pour les affaires

Améliorez les compétences de vos employés pour exceller dans l’économie numérique

Foire Aux Questions