Как выучить алгоритмы и алгоритмическое мышление?

  1. Алгоритмы и программирование - как начать?
  2. Как выучить алгоритмы?
  3. Материалы для изучения алгоритмов?
  4. Материалы для изучения алгоритмов на польском языке
  5. книги
  6. Материалы для изучения алгоритмов на английском языке
  7. Алгоритмы - задачи
  8. Еще несколько задач из алгоритмов от меня:

Алгоритм является способом решения задачи за конечное число шагов

Знаете ли вы, что такое абсолютное значение, как суммировать несколько чисел, помните, как сделать умножение и деление, вычислить поле круга? - Возможно, эти знания из начальной школы все еще в вашей голове, и вы легко можете передать их ребенку, которому несколько лет. Теперь вам нужно научиться думать, как передать свои знания о том, как решить проблему - с помощью компьютера, использующего алгоритм.

Алгоритмы и программирование - как начать?

Как выучить алгоритмы? Вы можете научиться логическому мышлению, алгоритмическому мышлению?

Вопрос, заданный в названии поста, время от времени появляется в новостях с момента публикации поста. Почему программист алгоритма? , Я понял, что в то же время я не смогу написать все посты, которые у меня где-то в голове, и в то же время я хотел бы, чтобы люди, которые приходят сюда, имели учебные материалы.

Я думаю, что программирование и алгоритмы связаны между собой. Решение алгоритмических задач является важным этапом в обучении программированию (независимо от того, выбираете ли вы интерфейсные, серверные, мобильные приложения или другие области, связанные с программированием), хотя я согласен с тем, что нет необходимости получать вашу первую работу в области ИТ или становиться программистом / программистом ,

Я не буду менять предложение в любом случае - я останусь при этом тем, что перемещение мозговых клеток и решение алгоритмических задач является важным навыком в работе программиста.

Как выучить алгоритмы?

Алгоритмы обучения могут показаться чёрной магией, хотя существует немало алгоритмов обучения. Проблема в том, что если в ваших исследованиях не было алгоритмов в качестве предмета, вы не знаете, для чего нужно так много этих знаний.

Вот, поэтому я буду использовать мою собственную простую программу:

1) Что такое данные и как мы их храним?
2) Структуры: насыпь (стек), очередь (FIFO), стек (LIFO), графики и их представления, деревья
3) цикл Эйлера и путь, цикл Гамильтона
4) Основы вычислительной сложности (включая О-нотацию)
5) Алгоритмы сортировки:
  • вставить сортировку - вставив,
  • выбор сортировки - по обмену
  • быстрая сортировка - быстро,
  • пузырьковая сортировка - пузырь,
  • куча куча - стек
  • сортировка по счету - по счету,
  • сортировка слиянием - путем слияния

6) Динамическое программирование (проблема ранца)
7) рекурсия
8) Хеш-таблица

Это пример, и он очень урезан, но, на мой взгляд, этого достаточно, чтобы получить основы и практиковать их. Конечно, вы также можете выбрать опцию Learn hard way - и использовать программу Алгоритмы и структуры данных "Honcho" (это академический материал, очень обширный, но хорошо развитый и среди слушателей даже IT культовый).

Материалы для изучения алгоритмов?

Конечно, все эти понятия можно зарегистрировать и просто пройти через поколения, трансформировать их. Спасибо, подлежит закрытию.

К сожалению, это нелегкие понятия, и при чтении определения из википедии может быть сложно освоить их. Я нашел несколько хороших источников, которые вы можете использовать.

Материалы для изучения алгоритмов на польском языке

Обратите внимание, что навыки программирования не требуются для изучения алгоритмов. Вы можете решить эти проблемы, даже организовав кубики Lego, если это позволяет понять принцип решения проблем.

Там, где язык программирования пригодится, это уже реализация (то есть написание кода, программирование) для решения данной проблемы.

Алгоритмы хана академии - это бесплатный интерактивный курс алгоритмики на платформе Академии Хана. Очень приятно представлены вопросы с примерами, большое количество иллюстраций, задачи для самостоятельного решения, кроме того, в курс включены задачи в виде завершения JavaScript-кода (необязательно разбираться в последующих уроках). Все решение, вероятно, занимает от нескольких до нескольких часов обучения в зависимости от индивидуального темпа. Разделяя друг друга по 1-2 часа в день, мы спокойно сделаем курс через 2 недели.
►   Алгоритмы хана академии   - это бесплатный интерактивный курс алгоритмики на платформе Академии Хана

Algorytmy.org - страница, полностью посвященная алгоритмике. Мы находим на нем много тем из тех, которые я давал выше. Они были моей стартовой страницей для семестра, когда в университете разрабатывались алгоритмы и структуры данных.

Из теоретического введения как курс алгоритмов по структуры данных и алгоритмы с примерами. Есть из чего выбирать. Самое главное, примеры реализации (в основном на C ++) доступны для скачивания на сайте.
Из теоретического введения как   курс алгоритмов   по   структуры данных   и   алгоритмы   с примерами

Л.О. Тарнув Алгоритмы - "курс" на стороне этой средней школы заставляет челюсть опускаться. Чапо бас! Г-н Ежи Валашек, делая эту базу данных доступной, сделал что-то замечательное для польского Интернета и всех ИТ-студентов (опять же материал, который помог включить алгоритмы и структуры данных). Завидую его старшеклассникам 😉

► В блоге появилась запись из теории графов, как будто кто-то хотел ее здесь машинное представление графа ,

книги

Преимуществом книг по алгоритмам является форма администрирования. На самом деле, мы получаем один источник и лист бумаги, алгоритм после алгоритма уже запланировал порядок обучения. Кроме того, в отличие от онлайн-курсов, книга «работает» без доступа к Интернету (что является плюсом для людей, которых часто отвлекают другие закладки, например, Facebook). Стоит помнить, что алгоритмы обучения из книг также должны оказывать влияние на код.

Алгоритмы - иллюстрированное руководство - Я рекомендовал эту книгу моей подруге Полине некоторое время назад. Раньше у нее не было связи с алгоритмами. Она сама научилась программировать (в этом году она тоже получила работу), я попросил у нее краткий обзор:

Прочтите от начала и до конца отличное введение в тему для человека, который ранее не имел отношения к алгоритмам.
Примеры действительно просты, легко усваиваются и довольно забавны. Все это делает обучение действительно приятным! Не имея предыдущего контакта с Python, я легко понял примеры реализации из книги, я также создал свой первый алгоритм на Ruby и JavaScript. И самое главное - книга позволила мне подготовиться к набору заданий на должность младшего бэкэнда разработчика . Я настоятельно рекомендую это всем, кто хотел бы любить алгоритмы :)

Введение в алгоритмы

Кормен на самом деле классик, по крайней мере, мне так кажется. Я не считаю, сколько раз я слышал это имя на первом курсе. Это книга из разряда «тяжелые полеты», учебник. Конечно, все еще хорошо для новичков (но тех, у кого уже есть некоторые основы. Без них будет трудно пройти через это), а также для людей, которые долгое время программировали и хотели бы вспомнить основы. Наверное, самый популярный среди ИТ-студентов.

Алгоритмы без секретов

В противном случае Cormen в упрощенном, упрощенном варианте. Элемент значительно легче, чем «Введение в IT». Он не очень обширный, содержит алгоритмы и примеры псевдокода, вводит интересные алгоритмические проблемы, такие как криптография и сжатие данных.

Материалы для изучения алгоритмов на английском языке

Здесь я буду пренебрегать списком, потому что знаю, что вы предпочитаете буквы на польском языке.

Прежде всего, веб-приложение и телефон, который я уже рекомендовал - Brilliant.org , В каждый свободный момент - на трамвае, автобусе, поезде, вы можете читать статьи и решать викторины по алгоритмам.

По этому поводу я также напоминаю вам о записи: 5 бесплатных мобильных приложений, которые научат вас программировать

Вторая ссылка, которую я рекомендую, - видео курс от Udemy - Интервью по кодированию Bootcamp: алгоритмы + структуры данных , Хороший курс в виде заданий с описанными подходами к проблеме. Как следует из названия, это помогает вам подготовить алгоритмы, которые чаще всего появляются во время набора . Задачи решаются в Javascript , поэтому необходимы базовые знания Js. Курс является единственным в рейтинге платным, но цены Udemy очень доступны + у вас есть 30 дней, чтобы вернуться, даже если в течение этих 30 дней вы закончите весь курс (и, например, его уровень разочарует вас ... или вы лук), вы можете легко отменить покупку ,
Вторая ссылка, которую я рекомендую, - видео курс от Udemy -   Интервью по кодированию Bootcamp: алгоритмы + структуры данных   ,  Хороший курс в виде заданий с описанными подходами к проблеме

Другой в списке - платформа edX. Здесь вы найдете бесплатные курсы, которые могут вам понадобиться:

Вышеуказанные курсы требуют записи, доступ к материалам бесплатный. Если кому-то было интересно, EdX предлагает платные сертификаты для каждого курса.

Обширный, потому что по оценкам около 4 месяцев, курс   алгоритмы на примере социальных сетей   Вы можете найти его бесплатно на сайте Udacity
Обширный, потому что по оценкам около 4 месяцев, курс алгоритмы на примере социальных сетей Вы можете найти его бесплатно на сайте Udacity. Вводит концепции проектирования и анализа алгоритмов, которые позволяют вам узнать, как люди связаны.

Алгоритмы - задачи

Когда у нас есть основы, теория и в целом мы знаем, что она собирается взять на себя задачи. Вы можете решить их на любом языке программирования и поделиться на вашем GitHub ,

В посте 1000+ задач для решения в Python и за его пределами появляются алгоритмические проблемы с решениями.

Еще одно место, где вы найдете примерные задачи Веб-сайт AiSD (доктор Марта Щачнюк преподавала этот предмет для биоинформатики, когда я была на первом курсе, рекомендую)

Еще несколько задач из алгоритмов от меня:

Задача 1
Реализуйте любые 4 вида (например, пузырь, слияние, куча, быстрый).

▶ Напишите генератор, который даст вам массив целых чисел, где строка данных расположена случайным образом, по возрастанию, по убыванию.
Протестируйте программу на предмет сгенерированных по-разному числовых последовательностей с разным количеством элементов и порядком их расположения.
Сравните время работы алгоритмов сортировки. Который Лучший из вас? Это алгоритмы с известной вычислительной сложностью, совпадают ли ваши тесты с ожидаемым результатом?

Задание 2
Реализовать графовые представления: список преемников, матрица окрестностей.
Реализуйте алгоритмы преобразования ширины (BFS) и глубины (DFS).

Задание 3
Реализуйте алгоритм, который находит первый цикл Гамильтона в неориентированном графе.

Задание 4
Реализуйте алгоритм, который находит первый цикл Эйлера в неориентированном графе.

Задание 5
Реализуйте 0-1 задачу о ранце:
- алгоритм полного перебора
- алгоритм динамического программирования
- выбран жадный алгоритм

▶ Сгенерируйте n набор элементов (вес, цена) для 10 различных значений, чем тестируйте вашу программу.

Если у вас есть проблемы с решениями Python, зайдите в группу Питон: наука ,

Вам удалось решить задачу? - хвастаться в комментарии под постом! 🙂

Алгоритмы и программирование - как начать?
Как выучить алгоритмы?
Материалы для изучения алгоритмов?
Алгоритмы и программирование - как начать?
Как выучить алгоритмы?
Вы можете научиться логическому мышлению, алгоритмическому мышлению?
Почему программист алгоритма?
Как выучить алгоритмы?
Материалы для изучения алгоритмов?
Который Лучший из вас?