Данный репозиторий является своего рода конспектом книги "Грокаем Алгоритмы" Адитьи Бхаргавы.
Здесь можно найти примеры кода на Java, некоторые "выжимки" из книги, различные ссылки на статьи, дополнительные источники.
Big O Notation - время выполнения алгоритмов выражается как "О-большое", описывается ростом количества операций.
"О-большое" описывает количество операций при наихудшем сценарии.
Пять вариантов «О» большого, которые встречаются чаще всего. Они отсортированы от самого быстрого к самому медленному:
- O(log n) — логарифмическое время. Пример: двоичный поиск.
- O(n) — линейное время. Пример: простой поиск.
- O(n * log n). Пример: быстрый алгоритм сортировки, такой как quicksort (быстрая сортировка).
- O(n2) — квадратичное время. Пример: медленный алгоритм сортировки, такой как сортировка выбором.
- O(n!) — факториальное время. Пример: очень медленный алгоритм, такой как в задаче коммивояжера.
В случае OutOfMemoryError Exception, необходимо увеличить объем выделяемой памяти JVM:
добавляем в VM Options, например -Xms4096m -Xmx4096m (4GB памяти на старте JVM, 4GB максильный размер)
Дополнительно: