Предполагая, что вы немного знаете о концепциях программирования, таких как массивы, переменные и структуры данных в целом, я постараюсь поделиться с вами некоторыми из наиболее широко применимых алгоритмов в наших повседневных поисках для решения реальных мировых задач программирования. Нашим первым алгоритмом будет знаменитый бинарный поиск. Надеюсь, этот пост поможет вам в вашем путешествии по изучению концепций алгоритма.
Бинарный поиск Алгоритм бинарного поиска находит элемент в отсортированном массиве. Предположим, что вы ищете номер в массиве (отсортированный массив), обычно без использования двоичного поиска или любого алгоритма, который мы бы искупили на каждом элементе в массиве, чтобы найти это число, и если массив настолько большой, как 100 000 или больше, его Потребуется много времени, чтобы найти номер специально, если номер будет найден в конце массива, поэтому, чтобы преодолеть эту проблему, мы будем использовать бинарный поиск, чтобы найти номер.
Вот как работает бинарный поиск под капюшоном; он занимает отсортированный массив и делит массив на половинки. Тогда Он ищет заданный номер на одной из разделенных половины массива, и если число, которое мы ищем, меньше, чем в первой половине массива, он устранит первую половину, в котором нет числа, которые можно найти и снова Попробуйте разделить оставшуюся половину на другие половины, такие как первые, этот процесс будет продолжаться до тех пор, пока число не найдено. Если номер существует в массиве, двоичный поиск вернет позицию номера, и если он не сможет найти номер, он вернет нуль.
На приведенном выше коде и высоком отслеживание, какую часть массива мы ищем.
Большой О записка
Эффективные алгоритмы оцениваются по время и место они берут, чтобы завершить. Big O обозначения – это особая нотация, которая рассказывает вам, насколько быстро является алгоритм. Чтобы понять большие обозначения O, мы должны чувствовать себя комфортно с логарифмическими понятиями. Например, предположим, что у вас есть список размеров n. Простой поиск должен проверить каждый элемент, поэтому он потребует n операций. Время выполнения в больших обозначениях – O (n). Big O обозначения позволяет сравнить количество операций. Он говорит вам, как быстро растет алгоритм.
Бинарный поиск нуждается в операциях Log N, чтобы проверить список размера n. Какое время бега в Big O обозначении? Это O (log n). Например, если у нас есть элемент 100 размеров, он потребует 7 численных операций для завершения поиска. Когда я говорю о работе в Big O, журнал всегда означает журнал на базу 2.
Вот пять больших времен пробега, с которыми вы многое столкнетесь, отсортированы от самых быстрых до самого медленного:
- O (log n), также известный как время журнала. Пример: бинарный поиск.
- O (n), также известный как линейное время. Пример: Простой поиск.
- O (n * log n). Пример: Алгоритм быстрой сортировки, такой как быстрый сорт
- O (N 2). Пример: Алгоритм медленной сортировки, например, сортировка выбора
- На!). Пример: действительно медленный алгоритм, такой как путешествие
Мы будем больше смотреть на вышеупомянутые времена пробега в моей следующей статье.
Последние мысли
Бинарный поиск намного быстрее, чем простой поиск.
- O (log n) быстрее O (n), но он становится намного быстрее, когда список
- Предметы, которые вы ищете, растет.
- Скорость алгоритма не измеряется в секундах.
- Время алгоритма измеряется с точки зрения роста алгоритма.
- Алгоритм времена написаны в Big O нотации.
Некоторые из материалов в этой статье взяты из книги
Алгоритмы Гроккинга Иллюстрированное руководство для программистов и других любопытных людей
Адитья Ю. Бхаргава
Это действительно отличная книга, вы можете купить ее Здесь Анкет
Если вам нравится мой пост, оставьте комментарий:
Оригинал: “https://dev.to/benhaddish/beginners-quest-to-algorithmspart-1”