- Регистрация
 - 27 Авг 2018
 
- Сообщения
 - 47,032
 
- Реакции
 - 947,464
 
- Тема Автор Вы автор данного материала? |
 - #1
 
		
		
		
			Голосов: 0
		
	
			
				
					
	ОПИСАНИЕ:
Добрые, добрые структуры данных [Stepik] [Сергей Балакирев]
Для грамотной разработки программного кода нужно не только хорошо владеть языком программирования, но и предельно ясно представлять себе как эффективно организовывать хранение и обработку данных в процессе работы программы. Именно для этого и нужно знать основные структуры данных, понимать как они работают, какие у них преимущества и недостатки, чтобы грамотно выбирать лучшие способы представления данных при решении каждой конкретной задачи.
Этот курс - очередная важная ступенька вашего становления, как грамотного IT-специалиста в области программирования.
После того, как вы изучили базовые возможности языка, его объектно-ориентированную составляющую, следующим логичным шагом является изучение типовых, часто используемых структур данных, знание их сильных и слабых сторон для эффективного использования в своих проектах.
Любая более-менее состоятельная программа использует хотя бы одну простейшую структуру данных, например, массивы. А в более сложных проектах всегда присутствуют и более сложные вроде связных списков, хэш-таблиц, множеств, ассоциативных массивов и так далее. Все это нужно знать, чтобы ваши программы получались максимально быстрыми и при этом экономно расходовали память устройства. Мало того, почти всегда на собеседованиях при приеме на работу на должность программиста задаются вопросы по структурам данных и способах оценки сложности алгоритмов, как правило, с позиции "О большого" (Big O). Как раз все эти важные темы входят в данный курс. Его прохождение позволит вам не только увереннее составлять алгоритмы, но и успешнее проходить собеседования при будущем трудоустройстве.
Чему вы научитесь:
- Узнаете как правильно определять вычислительную сложность типовых алгоритмов (показатель О большое - Big O).
 - Познакомитесь со статическими и динамическими массивами.
 - Подробно изучите одно- и двусвязные списки, а также их использование для построения очередей и стеков.
 - Увидите, что из себя представляют бинарные деревья и как они применяются для описания упорядоченных множеств.
 - Познакомитесь с префиксными (нагруженными) деревьями и их применением для построения ассоциативных массивов.
 - Изучите основы хэш-таблиц, способы построения хэш-функций и методами устранения коллизий.
 
1. Учимся оценивать вычислительную сложность алгоритмов
- Введение в Big O
 - Big O логарифмической и факториальной сложности
 
- Статический массив
 - Статический массив на С++
 - Динамический массив
 - Динамический массив на Python
 - Динамический массив на С++
 
- Односвязный список
 - Односвязный список на С++
 - Двусвязный список
 - Двусвязный список на С++ с нуля
 - Класс list двусвязного списка библиотеки STL языка С++
 
- Очереди типов FIFO и LIFO
 - Очередь collections.deque на Python
 - Класс deque очереди библиотеки STL языка C++
 - Стек (stack)
 - Реализация стека на Python и C++
 
- Бинарные деревья
 - Способы обхода и удаления вершин бинарного дерева
 - Бинарное дерево на Python
 - Множества (set). Операции над множествами
 - Множества set и multiset в C++
 - Контейнер map библиотеки STL в C++
 - Префиксное (нагруженное, Trie) дерево. Ассоциативные массивы
 
- Хэш-таблицы
 - Универсальное хэширование
 - Метод открытой адресации. Двойное хэширование
 - Хэш-таблицы в языках Python и С++
 
- 28 уроков
 - 6часов 21минута видео
 - 187 тестов
 - 76 интерактивных задач
 
ПРОДАЖНИК:
СКАЧАТЬ:
			
				Последнее редактирование: