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

Формула программиста
основатель — Волосатов Евгений Витольдович
Большой Новогодний подарок от Игромистра
Безденежный доступ к видеокурсам за Мегахеши
Вебинар «Предновогодние обещания» начнётся через 1  день 3 час. 42 мин.

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

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




Хочу купить!

800 p.


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

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

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

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Хороший курс. Жаль, что короткий. Очень интересно и полезно совмещение с рассмотрением коллекций. Можно было бы затронуть Linq. Хотелось бы побольше поработать с графами, например, решить какие нибудь практические задачи: раскраска графа, разбиение графа. Возможно, дальше изучу dancing links

Научился: На этом курсе мы изучили основные коллекции в С#, сравнили их быстродействие и эффективность. Создали класс для работы с графами и его графическое отображение. Было очень интересно реализовать поиск в ширину и глубину, начиная с ручной разработки алгоритма и заканчивая программной, с использованием очереди и стека. Получили базовые основы по графам, на их основе можно приступать к решению олимпиадных задач.
Трудности: Сложного почти не было. Евгений Витольдович очень ответственно отнесся к подготовке курса.
Я очень рад возможности поработать с этим замечательным курсом. Он мне много дал, трудно переоценить ценность знаний. Хочу особо выделить концовку курса, где пошагово видишь выполнение двух различных способов поиска по графу. Огромное спасибо Евгению Витольдовичу!!!