Найти тему

Грокаем алгоритмы. О-большое. Часть 2.

Заметки:

  1. О-большое описывает скорость работы алгоритмы.
  2. Время выполнения для бинарного и простого поиска растет с разной скоростью.
  3. С увеличением списка бинарный поиск занимает чуть больше времени, а простой поиск займет ГОРАЗДО больше времени. В общем, чем больше элементов в списке, тем быстрее работает бинарный поиск по сравнению с обычным поиском.
  4. О-большое не сообщает скорость в секундах, а позволяет сравнить количество операций. Оно показывает, насколько быстро возрастает время выполнения алгоритма.
  5. Скорость работы алгоритма обычно описывается как О(n), где n — количество операций. Скорость работы простого алгоритма так и выглядит. Например, если перебираем 100 элементов, то будет О(100).
  6. Скорость бинарного поиска — О(log n).
  7. О-большое всегда описывает худший возможный случай. Это позволяет знать, что алгоритм никогда не будет работать медленнее, чем О-большое.
  8. Существует задача о коммивояжере с худшей скоростью. Коммивояжеру нужно объехать 5 городов в рандомных местах. Надо определить, в каком порядке лучше это сделать. Одно из известных решений — перебрать все возможные комбинации, суммируя расстояния, а потом уже выбрать самый короткий. Но для 5 городов это будет аж 120 вариантов. Для 6 городов уже 730. А для 7 — 5040. Цифры ужасающе быстро растут. Скорость тут O(n!) — факториальная.

Первая часть: https://zen.yandex.ru/media/android_junior/6127f4e93e355f506aa43cf7