Рубрики
Без рубрики

Новички квест на алгоритмы – часть 1

Простое введение в алгоритмы. Tagged с алгорихами, фургонотами, Python.

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

Бинарный поиск Алгоритм бинарного поиска находит элемент в отсортированном массиве. Предположим, что вы ищете номер в массиве (отсортированный массив), обычно без использования двоичного поиска или любого алгоритма, который мы бы искупили на каждом элементе в массиве, чтобы найти это число, и если массив настолько большой, как 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”