Запись

[Stepik] Добрые, добрые структуры данных (Сергей Балакирев)

Тема в разделе "Курсы по программированию"

Цена:
1000 руб
Взнос:
109 руб
Организатор:
Dr.Vatson

Список участников складчины:

1. Dr.Vatson
open
2
Записаться
  1. Dr.Vatson Организатор складчин

    [Stepik] Добрые, добрые структуры данных (Сергей Балакирев)

    [​IMG]

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

    Этот курс - очередная важная ступенька вашего становления, как грамотного IT-специалиста в области программирования. После того, как вы изучили базовые возможности языка, его объектно-ориентированную составляющую, следующим логичным шагом является изучение типовых, часто используемых структур данных, знание их сильных и слабых сторон для эффективного использования в своих проектах.

    Любая более-менее состоятельная программа использует хотя бы одну простейшую структуру данных, например, массивы. А в более сложных проектах всегда присутствуют и более сложные вроде связных списков, хэш-таблиц, множеств, ассоциативных массивов и так далее. Все это нужно знать, чтобы ваши программы получались максимально быстрыми и при этом экономно расходовали память устройства. Мало того, почти всегда на собеседованиях при приеме на работу на должность программиста задаются вопросы по структурам данных и способах оценки сложности алгоритмов, как правило, с позиции "О большого" (Big O). Как раз все эти важные темы входят в данный курс. Его прохождение позволит вам не только увереннее составлять алгоритмы, но и успешнее проходить собеседования при будущем трудоустройстве.

    Чему вы научитесь:
    1. Узнаете как правильно определять вычислительную сложность типовых алгоритмов (показатель О большое - Big O).
    2. Познакомитесь со статическими и динамическими массивами.
    3. Подробно изучите одно- и двусвязные списки, а также их использование для построения очередей и стеков.
    4. Увидите, что из себя представляют бинарные деревья и как они применяются для описания упорядоченных множеств.
    5. Познакомитесь с префиксными (нагруженными) деревьями и их применением для построения ассоциативных массивов.
    6. Изучите основы хэш-таблиц, способы построения хэш-функций и методами устранения коллизий.
    Для кого этот курс:

    Задания этого курса ориентированы на язык Python и С++. Поэтому его имеет смысл проходить после изучения базы и ООП этих языков:
    • "Добрый, добрый Python"
    • "Добрый, добрый Python ООП"
    • "Добрый, добрый C/C++"
    • "Добрый, добрый ООП C++"
    Идеально, если вы знаете оба языка программирования: и Python и C++. Но, можно его проходить, зная только один из них, или даже какой-либо другой. Правда тогда некоторые практические задания для вас будут непонятными. Но, тем не менее, вы, все равно, в полном объеме сможете изучить сами структуры данных. А это главная цель данного курса.


    1. Учимся оценивать вычислительную сложность алгоритмов

    1. Введение в Big O
    2. Big O логарифмической и факториальной сложности
    2. Простейшие структуры данных
    1. Статический массив
    2. Статический массив на С++
    3. Динамический массив
    4. Динамический массив на Python
    5. Динамический массив на С++
    3. Связные списки
    1. Односвязный список
    2. Односвязный список на С++
    3. Двусвязный список
    4. Двусвязный список на С++ с нуля
    5. Класс list двусвязного списка библиотеки STL языка С++
    4. Очереди и стек
    1. Очереди типов FIFO и LIFO
    2. Очередь collections.deque на Python
    3. Класс deque очереди библиотеки STL языка C++
    4. Стек (stack)
    5. Реализация стека на Python и C++
    5. Деревья и множества
    1. Бинарные деревья
    2. Способы обхода и удаления вершин бинарного дерева
    3. Бинарное дерево на Python
    4. Множества (set). Операции над множествами
    5. Множества set и multiset в C++
    6. Контейнер map библиотеки STL в C++
    7. Префиксное (нагруженное, Trie) дерево. Ассоциативные массивы
    6. Хэш-таблицы
    1. Хэш-таблицы
    2. Универсальное хэширование
    3. Метод открытой адресации. Двойное хэширование
    4. Хэш-таблицы в языках Python и С++

    Скрытый текст. Доступен только зарегистрированным пользователям.Нажмите, чтобы раскрыть...
     
  2. Похожие складчины
    Загрузка...
Наверх