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

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

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

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




2,000 руб.


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

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

# Название видеоурока Решило Рейтинг Доступ
1 ArrayList 00:12:16 30 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 45 мин. [Показать отчёт]
Научился: создавать ArrayList 
Сложности: создавать ArrayList 
Комментарии: пока все понятно 
2 List 00:12:57 30 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 1 час. 45 мин. [Показать отчёт]
Научился: Создавать типизированную коллекцию. 
Сложности: Следить за ходом мыслей Е.В. 
Комментарии: Я выбрал Last. Он находит последний элемент коллекции. 
3 Array vs List 00:11:04 28 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 2 час. 00 мин. [Показать отчёт]
Научился: создавать секундомер 
Сложности: пока ничего 
Комментарии: мой набор операций - я брал косинус от i - результат такой же - приблиз. все одинаково 
4 ListDictionary 00:15:19 28 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 1 час. 10 мин. [Показать отчёт]
Научился: увидел как использовать класс ListDictionary 
Сложности: пока ничего 
Комментарии: использовал Contains и Remove для своих экспериментов Contains - метод который проверяет "по ключу" есть ли запись в словаре Remove - удаляет запись из словаря по ключу 
5 Hashtable 00:11:56 27 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 1 час. 25 мин. [Показать отчёт]
Научился: Пoработал с Hashtable и HybridDictionary 
Сложности: ну вот ...понять то что изложено в материале 
Комментарии: по скорости - HybridDictionary тормознее работает на мой взгляд порядок следования во втором и третьем случае - ломается 
6 BitArray 00:14:00 27 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Работать с BitArray и его методами 
Сложности: ничего пока 
Комментарии: действительно ли если применять подряд OR XOR AND то исходные данные меняются или мне показалось? 
7 Граф 00:13:48 27 чел. ★ 4.9 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 1 час. 15 мин. [Показать отчёт]
Научился: Я узнал что существуют графы. К глубокому своему сожалению я не понимаю зачем их придумали умные люди!!! =) 
Сложности: Сказать что я оторопел от такой информации - это ничего не сказать. Какие то графы, цвета вершин, веса ребер. Матрица смежности, список смежности....Я очумел просто.... 
Комментарии: Какие задачи решают графы в жизни? Зачем их придумали люди? На вопрос Евгения Витольдовича отвечает Дмитрий Храбров..... 1. Матрица смежности 2. Описание Бержа 3. Список дуг 4. Список смежности я действительно честно пытался понять о чем пишет Дмитрий Храбров....пока не получилось - может Евгений Витольдович объяснит все более наглядно? 
8 Вершины 00:14:15 27 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Научился описывать вершины графа 
Сложности: вспомнить что такое IEnumerable и yield 
Комментарии: Хранить ребра мы наверное тоже будем с помощью отдельного класса его конструктора и небольшого количества методов 
9 Рёбра 00:12:47 26 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 2 час. 00 мин. [Показать отчёт]
Научился: учусь описывать граф на кампутере...в ЭВМ так сказать 
Сложности: сложно въезжать в тему 
Комментарии: Как понял так и сделал 
10 Инициация 00:11:15 26 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 1 час. 15 мин. [Показать отчёт]
Научился: Еще немного графа. Выводить вершины графа на экран. 
Сложности: пока ничего сложного 
Комментарии: вершинки круглые должны быть 
11 Отображение 00:16:18 26 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 2 час. 00 мин. [Показать отчёт]
Научился: еще немного про графы 
Сложности: найти свою ошибку 
Комментарии: Почему так важно не менять последовательность вывода вершин на экран? Я попробовал перемешать ...не с ноля начать ...и такая фигня получается - почему так?  
12 Шахматная доска 00:19:58 26 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 1 час. 20 мин. [Показать отчёт]
Научился: Создавать грaф в видe Шахматной доски 
Сложности: приехать после отпуска и начать все заново 
Комментарии: пока нет вопросов 
13 Широкий поиск 00:14:59 26 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Пoзнакомился c aлгоритмом поиска вширь Проработал весь алгоритм на конкретном примере Выбрал граф и поработал с ним 
Сложности: нашел материал который оказался очень полезен 
Комментарии: надеюсь меня не накажут за то что не раскрасил граф? 
14 Широкий алгоритм 00:14:12 25 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 1 час. 10 мин. [Показать отчёт]
Научился: Написал алгоpитм пoиска вширь 
Сложности: нет не смог разобраться 
Комментарии: нет не смог разобраться - извините единственная мысль - может быть мы не тот тип списка использовали? 
15 Широкий пошаговый ход 00:11:46 25 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 1 час. 30 мин. [Показать отчёт]
Научился: "Пошагово" прошёл весь алгоритм 
Сложности: осмысление происходящего...никогда до этого с таким не сталкивался 
Комментарии: ну вот не буду я сам делать визуализацию...не понимаю...(меня надеюсь не расстреляют за это) 
16 Визуализация процесса 00:14:07 22 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 1 час. 25 мин. [Показать отчёт]
Научился: Cоздал делeгaт "Покраска" и через него реализовал отображение процесса 
Сложности: самым сложным было найти истину! 
Комментарии: и увидел я Чудо Чудное! и Диво Дивное! Евгений Витольдович и другие разные ЛЮДИ УМНЫЕ не откажите в любезности - ответьте на вопрос мой неназойливый! А вершины наши в начале должны быть белые или иметь цвет фона? 
17 Глубокий поиск 00:09:58 22 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 2 час. 20 мин. [Показать отчёт]
Научился: Пoзнакомился c aлгоритмом поиска вглубь и проработал весь алгоритм на конкретном примере 
Сложности: вроде бы ничего сложного - много почитал и посмотрел на ютубе про этот метод - совсем для детей даже нашел кое-что (для меня в самый раз) 
Комментарии: я приложил данный скриншот потому что я так понял данный материал....на примере лабиринта. На примере ФИФО и ЛИФО я бы не понял 
18 Глубокий алгоритм 00:15:07 22 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 1 час. 45 мин. [Показать отчёт]
Научился: говорить неправду...вершины вначале должны быть белые... 
Сложности: ничего на этом уроке 
Комментарии: белые должны быть! а у нас не белые! 
19 ФИНАЛЬНЫЙ УРОК 22 чел. ★ 5 Done
  Отчёт отправил: 3146. Permitin Alexey Решено за 2 час. 00 мин. [Показать отчёт]
Научился: писать отзыв 
Сложности: -------------------------------------------- 
Комментарии: Интересно было подписаться на курс Коллекция графов и познакомится с этим понятием - граф. Разобраться что же все-таки такое граф, вершина графа, рёбра и их вес. Интересно было узнать для чего используется данная логика, где применяется и как эту логику правильно отобразить в коде. На курс у меня ушло полтора месяца. Я занимался только по вечерам. Сложность была только одна – приехать из отпуска и начать заново проходить курс. Курс представляет из себя 18 уроков и Финал. На первых 6 уроках нам рассказали о классах, описывающих коллекции и реализующих различные интерфейсы. На оставшихся 12 уроках мы познакомились с понятием графа, с логикой его описания в коде. Также познакомились с методами обхода неориентированного графа. Это поиск в ширину и поиск в глубину. Спасибо за предоставленный материал. Надеюсь что последний урок (18) Вами будет переписан. (да я вредный) 
Видеообзор: https://youtu.be/fx957UHWyAA
  Итого:   19 видеоуроков общей продолжительностью 4 час. 06 мин. 22 чел. ★ 5  
  Финалисты:   Максим,   Alcatraz,   Дмитрий,   Tekashnik,   Denis,   Иван,   Дмитрий 199,   Николай,   Михаил,   Дмитрий,   Ender,   Платон,   Владимир,   Андрей Н.,   Владимир Борисенко,   Максим Лапшинов,   Permitin Alexey,   Новопашин Владимир,   Максим Саратов,   Алексей В.,   Denchik,   Елена .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Познакомился с применением на практике различных коллекций (ArrayList, List, ListDictionary, Hashtable и HybridDictionary), а также их встроенных методов . Выяснил, что по скорости обработки различных комбинаций большого кол-ва эл-ов ListDictionary на порядок уступил по времени отработки двум другим классам : Hashtable и HybridDictionary, которые показали практически одинаковые результаты . Применять битовый массив BitArray, а также некоторые его методы на практике . Получил представление о графе и его разновидностях, методах представления, применять русские названия методов , перечисление , узнал об итераторах (yield return). Формировать граф в виде шахматной доски либо опр-ой формы и выводить его на экран с последующим поиском пути Вширь и Вглубь . При этом узнал о специфике применения foreach() и HashTable().
Трудности: При выполнении самостоятельных заданий определиться с вариантом хранения графа { цвета вершин, смежные вершины }, найти причину возникновения Exception-a при отработке foreach() и HashTable(), разобраться с общей логикой работы программы.
Хочу от всей души поблагодарить за коллекционный курс графопостроения ) ! Материала для применения и размышлений - более чем ! После данного курса планирую закончить "Бинарная жизнь" и переключиться на курсы "Игра Сокобан", "Графоциклы", "Итератор" . Конечно же в планах пройти все предложенные курсы на данный момент - главное двигаться дальше .
Научился: Разобрали алгоритмы поиска в глубь и в ширь
Трудности: ничего
Я считаю, что курс просто отличный. Мало того, что мы узнаем как работает стек и очередь, еще мы разберем 2 алгоритма прохода по графу, а также увидим воочию как работают эти алгоритмы. Если немного доработать самостоятельно, можно прикрутить поиск кратчайшего пути. А понимание такого механизма очень поможет в спортивном программировании! Единственный (как мне кажется) недочет, так это то, что в курсе используются IEnumerable. Мне, как не проходившему по данному типу видеокурс, было немного тяжело, хоть и интуитивно понятно, как это работает. В общем и целом, я рекомендую этот курс всем, кто хочет еще глубже погрузиться в атмосферу программирования, а также всем, кто захочет когда нибудь участвовать в олимпиадах и различных конкурсах по программированию. Между прочим, алгоритм поиска кратчайшего пути является основным алгоритмом на ежегодном конкурсе Russian AI Cup (соревнование по программированию ИИ)