Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович
Новый видеокурс по Git

Коллекция графа

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




3,000 руб.


Для подписки на пакет необходимо авторизоваться.

Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 ArrayList 00:12:16 32 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 25 мин. [Показать отчёт]
Научился: Пока ничему. 
Сложности: Ничего. 
Комментарии: Использовал метод IndexOf - посмотрел его работу. 
2 List 00:12:57 32 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 17 мин. [Показать отчёт]
Научился: Для меня было откровением, что можно сумму считать по generic от int. 
Сложности: Ничего. 
Комментарии: Я нашел максимальный элемент коллекции и вывел на экран. 
3 Array vs List 00:11:04 31 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 33 мин. [Показать отчёт]
Научился: Сравнивать время работы различных коллекций и массивов. 
Сложности: Ничего. 
Комментарии: Я чтобы уравнять шансы стал присваивать коллекциям свойству Capacity количество элементов и в результате генерик int быстрее работает даже, чем массив (на скрине видно). 
4 ListDictionary 00:15:19 31 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 37 мин. [Показать отчёт]
Научился: Узнал о коллекции ListDictionary. 
Сложности: Ничего. 
Комментарии: Бинарное дерево - сила. 
5 Hashtable 00:11:56 30 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 1 час. 13 мин. [Показать отчёт]
Научился: Научился работать со словарями ListDictionary, HashTable и HybrideDictionary 
Сложности: Самым сложным сделать тест. Я сначала не понял задание - я создавал массив коллекций и в каждый элемент добавлял по 10 элементов - понятное дело на 100 млн записях у вылетело с exception Out of memory. Потом я начал создавать словарь и добавлять по 10 элементов и так 100 млн раз - в результате получилось. 
Комментарии: У меня очень долго работал тест добавления 100 млн записей - пришлось сначала сократить до 10 млн, потом до 100 000 записей и то со скрина видно, что очень долго добавляются записи и примерно одинаковое время работает. А в первом случае намного быстрее - 100 млн раз по 10 записей. 
6 BitArray 00:14:00 30 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 1 час. 37 мин. [Показать отчёт]
Научился: Научился работать с коллекцией BitArray 
Сложности: Ничего. 
Комментарии: Вообще классно, что данный тип массива занимает в 8 раз меньше памяти, если бы использовали bool. Я поэкспериментировал с AND и OR. С моей точки зрения не правильно отрабатывает 3 случай для OR - там должно быть true . 
7 Граф 00:13:48 30 чел. ★ 4.9 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 1 час. 27 мин. [Показать отчёт]
Научился: Узнал про понятие графов и все что с ними связано. Нужно почитать викепедию. 
Сложности: Было вломак рисовать в паинте граф. 
Комментарии: Для моего графа следующая запись: 1 - 2,3 2 - 1,3 3 - 1,2,4 4 - 5 5- 4 6-7 7-6 
8 Вершины 00:14:15 30 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 30 мин. [Показать отчёт]
Научился: Научился создавать класс графа и описывать вершины. 
Сложности: Пока ничего. 
Комментарии: Хранить ребра можно в словаре типа , а насчет клавиатур прикольно - надо взять на вооружение. Сейчас не хочу себе создавать трудности - пока и так хватает. 
9 Рёбра 00:12:47 29 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 30 мин. [Показать отчёт]
Научился: Научился создавать класс для графа. 
Сложности: Ничего. 
Комментарии: С моей точки зрения нужно придумать такую штуку, чтобы добавил скажем ребро a к b - и b уже автоматически добавлялось и знало, что оно есть. Чтобы не было дублирования хранения данных. 
10 Инициация 00:11:15 29 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Научился добавлять граф в коллекцию. 
Сложности: До сих пор не понимаю как вывести граф на экран тем боле соединить элементы линиями друг с другом. 
Комментарии: Идем дальше. 
11 Отображение 00:16:18 29 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 1 час. 02 мин. [Показать отчёт]
Научился: Научился визуализировать граф с помощью Label и Lines. 
Сложности: Ничего. 
Комментарии: Я в восторге - граф как на ладони. Как пел Высоцкий : "Весь мир на ладони - я счастлив и нем...". 
12 Шахматная доска 00:19:58 29 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 1 час. 22 мин. [Показать отчёт]
Научился: Научился отображать граф шахматной доски. 
Сложности: Ничего. 
Комментарии: Это круто. 
13 Широкий поиск 00:14:59 29 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 33 мин. [Показать отчёт]
Научился: Научился алгоритму поиска вширь или в народе его называют bfs. 
Сложности: Ничего. 
Комментарии: Я вот подумал, а красно - черные деревья не такую же природу имеют? У меня получилось 2 очереди 12345 и 67 
14 Широкий алгоритм 00:14:12 28 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 41 мин. [Показать отчёт]
Научился: Научился создавать алгоритм обхода вширь BFS. 
Сложности: Пока не смог разобраться с ошибкой, когда мы перебираем все ключи и у нас изменяется коллекция. 
Комментарии: Посмотрю следующий урок. 
15 Широкий пошаговый ход 00:11:46 28 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 35 мин. [Показать отчёт]
Научился: Научился исправлять ошибку в HashTable 
Сложности: Ничего. 
Комментарии: Идем дальше. 
16 Визуализация процесса 00:14:07 24 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 30 мин. [Показать отчёт]
Научился: Научился визуализировать алгоритм с помощью делегатов. 
Сложности: Были моменты когда линии затирались при Refresh() в видео нашел решение. 
Комментарии: Круто получилось. 
17 Глубокий поиск 00:09:58 24 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 44 мин. [Показать отчёт]
Научился: Научился DFS - методу поиска вглубь. 
Сложности: Ничего. 
Комментарии: Хорошо что BFS и DFS объяснены с точки зрения очереди и стека - все ставит в голове на свои места. 
18 Глубокий алгоритм 00:15:07 24 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 1 час. 44 мин. [Показать отчёт]
Научился: Научился реализовывать DFS алгоритм. 
Сложности: Ничего. 
Комментарии: Получилось круто. Посмотрел как работает алгоритм поиска вглубь. 
19 ФИНАЛЬНЫЙ УРОК 24 чел. ★ 5 Done
  Отчёт отправил: 7119. Новопашин Владимир Решено за 2 час. 24 мин. [Показать отчёт]
Научился: Ничему. 
Сложности: Микрофон как всегда лагал. 
Комментарии: Супер курс - очень интересный и помог в решении пары задач. 
Видеообзор: https://youtu.be/7KVxnZrHA60
  Итого:   19 видеоуроков общей продолжительностью 4 час. 06 мин. 24 чел. ★ 5  
  Финалисты:   Максим,   Alcatraz,   Дмитрий,   Tekashnik,   Denis,   Иван,   Дмитрий 199,   Николай,   Михаил,   Дмитрий,   Ender,   Платон,   Владимир,   Андрей Н.,   Владимир Борисенко,   Максим Лапшинов,   Permitin Alexey,   Новопашин Владимир,   Максим Саратов,   Алексей В.,   Den Andreevich,   Елена,   Станислав,   Сергей Соколов .

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Курс в целом очень полезный. В первую очередь из-за знакомства со списками/коллекциями, на самом деле это такая нужная "обыденная" вещь, без которой ни один более-менее средний (про большие уж не говорю) не обходится, поэтому знать и уметь пользоваться нужно обязательно. Ну и как бонус курса - знакомство с графами и алгоритмами их обхода вширь и вглубь.
Курс очень понравился, здесь не было чего-то особо запутанного и сложного для понимания. Единственное замечание - это автор немного "перемудрил" с алгоритмом добавления ребер на графе шахматной доски, но я реализовал свой алгоритм, поэтому для меня это не минус.
Научился: На протяжении курса научился многим вещам, понятиям и т.п.
Трудности: Ничего.
Вебинар был просто замечательный как и сам курс, который дает очень основательные знания для работы с коллекциями. Рассмотрены и визуализированы два замечательных алгоритма, к которым думаю в свое время обращался или обратиться каждый программист. Курс просто замечательный.