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

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

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

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




2,000 руб.


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

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

# Название видеоурока Решило Рейтинг Доступ
1 ArrayList 00:12:16 32 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 20 мин. [Показать отчёт]
Научился: Узнал о коллекции ArrayList  
Сложности: Вроде ничего 
Комментарии: Узнал впервые о методе вставки insert, до этого только удалял элементы:) 
2 List 00:12:57 32 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 20 мин. [Показать отчёт]
Научился: Вспомнил списки и работу с ними.  
Сложности: Сумма...  
Комментарии: Нашёл метод RemoveAt - удаление по индексу. Не могу понять, почему Sum в List не работает??  
3 Array vs List 00:11:04 31 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 20 мин. [Показать отчёт]
Научился: Научился сравнивать коллекции.  
Сложности: Ничего :)  
Комментарии: Заодно и горячие клавиши повторил :)  
4 ListDictionary 00:15:19 31 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 20 мин. [Показать отчёт]
Научился: Узнал о коллекция типа ListDictionary и посмотрел некоторые свойства.  
Сложности: Вроде всё было понятно.  
Комментарии: Чем-то похоже на ключи в SQL, если мне не изменяет память, constraint... А для эксперимента любуюсь Remove :)  
5 Hashtable 00:11:56 30 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Научился самостоятельно экспериментировать и сравнивать коллекции на практике.  
Сложности: Ждать.  
Комментарии: Скажу честно: мне лень было напрягать мозги и думать над этим, однако желание не стать посредственным программистом победило. Вот что накалякал: Я никак не мог понять, как создать много коллекций. Только потом вспомнил, что массив всегда придёт в помощь. Ну да ладно, с этим справился. Потом всё пошло отлично, но вот на скрине получилось так, что 100000 коллекций LD создаётся 200мс, а одна из 100000 элемнтов - минуту. МИНУТУ, КАРЛ! То ли я ошибся в исходнике (прикрепляю его), то ли коллекция LD быстрая только при малом кол-ве элементов? Ну а так, проэкспериментировав, можно сделать вывод, что с малым кол-вом элементов лучше LD не найти, в то же время HD-коллекции удобны при бОльшем кол-ве элементов. И ещё: я не понял третий этап, который Вы говорили на видео. Что от меня нужно? А так эксперимент понравился, спасибо за урок!  
6 BitArray 00:14:00 30 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 20 мин. [Показать отчёт]
Научился: Познакомился с коллекцией bitArray и закрепил знания по логическим операциям.  
Сложности: Вспомнить операции 
Комментарии: Ну наконец-то я понял Xor, а то с института не знал её. Да и логические действия забывать нельзя. Ах да, после этого урока охота пользоваться массивами пропадает:) А для эксперимента я просто вспомнил and и or :) 
7 Граф 00:13:48 30 чел. ★ 4.9 Done
  Отчёт отправил: 6925. Артём Решено за 20 мин. [Показать отчёт]
Научился: Вспомнил графы.  
Сложности: Думать над хранением их 
Комментарии: На курсе Комбинаторика была задача о выходе из лабиринта, где использовались очереди. Правда, тогда я о них не знал, но попробую с их помощью. А за идею графа спасибо сестре,которая попросила объяснить задачу рл геометрии :) 
8 Вершины 00:14:15 30 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 15 мин. [Показать отчёт]
Научился: Повторил итераторы и волшебное слово yield  
Сложности: yield... 
Комментарии: Dictionary подошёл бы и хранить там две вершины через массив (вершина 1, вершина2), соединяющие ребро, и длину его.  
9 Рёбра 00:12:47 29 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 15 мин. [Показать отчёт]
Научился: Научился описывать коллекцию рёбер и понял, почему надо Dictionary 
Сложности: вроде ничего  
Комментарии: простое неправильное решение :)  
10 Инициация 00:11:15 29 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 15 мин. [Показать отчёт]
Научился: Повторил динамическое создание элементов. 
Сложности: Додуматься до вывода 
Комментарии: Самое простое и неправильное решение - цикл. Вот не хочется писать 6 раз AddLabel и вычислять координаты, но похоже, придётся... P.S. возникла идея матрицы смежности составить :) Жаль, что на уровне идеи это и осталось :(  
11 Отображение 00:16:18 29 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 20 мин. [Показать отчёт]
Научился: Повторил работу с графикой.  
Сложности: не сразу вспомнил, что координата метки - верхний левый угол 
Комментарии: А можно ли метки в виде круга создать? Кстати, по поводу линий: уж очень попахивает Bitmap, pictureBox. Можно ли так использовать?  
12 Шахматная доска 00:19:58 29 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 30 мин. [Показать отчёт]
Научился: Научился создавать шахматный граф.  
Сложности: Не запутаться в циклах.  
Комментарии: Не получается скрин сделать: как только нажимаю альт, сразу стираются линии :(  
13 Широкий поиск 00:14:59 29 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 20 мин. [Показать отчёт]
Научился: Повторил алгоритм поиска вширь. 
Сложности: Вспомнить очередь. 
Комментарии: Идём дальше :)  
14 Широкий алгоритм 00:14:12 28 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Вспомнил алгоритм поиска вширь через очередь.  
Сложности: Найти ошибку.  
Комментарии: Ну раз мы изменяли коллекцию, то почему бы там, где итератор, не сделать пребор, как в массиве - по индексу?  
15 Широкий пошаговый ход 00:11:46 28 чел. ★ 5 Done
  Отчёт отправил: 6925. Артём Решено за 15 мин. [Показать отчёт]
Научился: Повторил пошаговое исследование программы.  
Сложности: Ничего.  
Комментарии: Теперь пора визуализацию делать :)  
16 Визуализация процесса 00:14:07 24 чел. ★ 5 Open
17 Глубокий поиск 00:09:58 24 чел. ★ 5 Open
18 Глубокий алгоритм 00:15:07 24 чел. ★ 5 $
19 ФИНАЛЬНЫЙ УРОК 24 чел. ★ 5 $
  Итого:   19 видеоуроков общей продолжительностью 4 час. 06 мин. 24 чел. ★ 5  
  Финалисты:   Максим,   Alcatraz,   Дмитрий,   Tekashnik,   Denis,   Иван,   Дмитрий 199,   Николай,   Михаил,   Дмитрий,   Ender,   Платон,   Владимир,   Андрей Н.,   Владимир Борисенко,   Максим Лапшинов,   Permitin Alexey,   Новопашин Владимир,   Максим Саратов,   Алексей В.,   Den Andreevich,   Елена,   Станислав,   Сергей Соколов .

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




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

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

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

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