Параллельно изучению основам программирования в практикуме я решил немного читать полезной литературы. Да, я начал со сложной книги, но думаю для прочтения будет полезна. Грокаем алгоритмы.
Что такое алгоритм?
Алгоритм это определенный набор инструкций для выполнения некоторой задачи.
В программировании любой участок кода это и есть алгоритм, но алгоритмы бывают разные. Есть определенный набор быстрых алгоритмов которые рекомендуют для использования в Вашем коде.
Бинарный поиск. Имея отсортированный список элементов мы начинаем поиск в нем. Возможно, самое быстрое решение это поэлементно перебрать список, но задача была долгой, если не применить этот алгоритм. Принцип действия такой. Мы разбиваем список элементов пополам и сверяем есть ли поисковый элемент в одной из частей списка. Получается в одной из частей есть данный элемент. А та часть в которой элемента нет мы больше не используем. Далее в части где элемент есть мы так же разбиваем пополам, сверяем наличие поискового элемента. И так далее пока не будет найден наш поисковый элемент. На примере можно показать так. Два человека играют в игру. Один загадывает число в определенном диапазоне, а второй это число отгадывает. Но человек который отгадывает может задать вопрос больше или меньше поисковое число.
Пример:
Диапазон от 1-50
1) Загадал число 23
2) предполагаю, что число 25
1) меньше (значит, диапазон от 25 до 50 мы отбрасываем)
2) 12 (диапазон от 1 до 24 делим пополам)
1) больше (значит, диапазон от 1 до 12 отбрасываем)
2) 18 (половина диапазона от 12 до 24)
1) больше (значит, от 12 до 18 отбрасываем)
2) 21
1) больше
2) 23
1) число угадано
На данном примере я постарался показать пример алгоритма бинарный поиск.
Далее проходя данную книгу я постараюсь рассказывать про другие алгоритмы.