Я создал и наполняю этот репозиторий только с одной целью — помочь начинающим разработчикам лучше понять суть базовых вещей в IT, потому что я помню, как мне было сложно самостоятельно разобраться в этих поистине фундаментальных вещах. Я старался максимально аккуратно и понятно организовать код, чтобы новичкам было проще ориентироваться. Я также специально разделил описание и реализацию функций, чтобы вы могли привыкнуть к правильному форматированию кода в своих будущих проектах.
В локальном репозитории реализации той или иной структуры или алгоритма так же присутствует README_RU.md
, полностью повторяющий английский аналог для русско-говорящих разработчиков, у кого пллохо с английским, но все же я советую вам пользоваться именно оригинальным README.md
.
Так же как вы можете заметить я расставил структуры данных по уровню сложности. Именно по этому уровню я советую их изучать. Если вы знаете устройство очереди, то смело можете пропускать стэк (конечно же при условии, что вы понимаете его) и начинать изучение связных списков. Главное будьте честны с самими собой, в незнании нет ничего стыдного - стыдно не узнавать.
И в конце хочу сделать маленькое уточнение: в этом репозитории не будут рассматриваться базовый синтаксис и/или концепции языка. К примеру, что такое функция, что значит return
, как работают циклы и тому подобное. Если вы перешли к этому этапу осознанно, значит вы уже знакомы со всем вышеперечисленным. Если описание подобных вещей действительно необходимо прошу сообщить мне.
Вам необходимо перейти в рабочую директорию и клонировать этот репозиторий с помощью:
HTTPS:
git clone https://github.com/falafe1y/ForBeginners.git
или SSH:
git clone [email protected]:falafe1y/ForBeginners.git
Для компиляции необходимо указать файл main.cpp
, файл с реализацией интересующего вас алгоритма или структуры, например, BubbleSort.cpp
, флаг компиляции и имя двоичного файла, например, main
:
g++ main.cpp BubbleSort.cpp -o main
В этом репозитории вы найдете основные алгоритмы и структуры данных на языке C++, а именно:
-
Алгоритмы:
Big O:
- Примеры оценки сложности разных алгоритмов
Сортировка:
- Сортировка пузырьком
- Сортировка вставкой
- Сортировка выборкой
- Сортировка подсчетом
- Сортировка Радикса
- Сортировка шейкером
- Быстрая сортировка
- Сортировка кучей
- Сортировка слиянием
Seacrh:
- Линейный поиск
- Бинарный поиск
- Поиск в хэш-таблице
- Поиск по дереву
- Поиск по графу
-
Структуры данных:
- Стек
- Очередь
- Связанный список
- Дерево
- Граф
- Вектор
- Куча
- Хэш-таблица
Если у вас есть вопросы, вы хотите предложить идею для реализации или просто оставить отзыв, отправляйте свои сообщения на: [email protected] или [email protected]