Публикации по теме 'big-o-notation'


Демистификация временной сложности
Часть 01 — «Теория без практики так же неполна, как и практика без теории». — Курт Левин Прежде всего, что такое временная сложность? Представьте, что у вас есть коробка из-под обуви, полная бейсбольных карточек, и ваша миссия — найти в этой коробке конкретную карточку. Если вы начнете поиск случайным образом, выбирая по одной карте за раз, поиск может занять много времени. Это происходит потому, что вам нужно проверять каждую карту, пока не найдете нужную. Пока все хорошо, верно?..

Что, черт возьми, такое двоичный поиск?
Я прошел долгий путь с тех пор, как впервые нашел индекс заданного значения в массиве. Оказывается, я делал это медленно - проверял каждый элемент массива. Представьте, что вам нужно просматривать каждый контакт в телефонной книге один за другим, чтобы найти номер, который вы ищете. Это называется линейным поиском и имеет сложность O (n). Входить; Бинарный поиск Когда я впервые услышал о двоичном поиске, я изначально подумал, что у меня есть два типа линейного поиска: один,..

Что такое хеш-таблицы и как их использовать?
Определения: Идемпотент - обозначает элемент набора, значение которого не изменяется при умножении или другом действии сам по себе. Если вы знакомы с JavaScript, вы, скорее всего, называете хеш-таблицы объектами, в Ruby они называются хешами, а в Python - словарями. Хотя как этого добиться? Мы можем создавать объекты, подобные приведенному ниже, с помощью хэш-функции. Хеш-функция переваривает синтаксис, выделяет память со связанным адресом, известным как ключ, и хранит..

Мои заметки Javascript
BIG O правила 2. Удалить константы В этой функции мало что происходит, за исключением того, что мы печатаем первый элемент массива ; распечатать первую половину предметов; скажите привет 100 раз. Так что же может быть большим O этой функции? Я придумал O (1 + n / 2 + 100). В этом примере мы проигнорируем присвоение переменных и небольшие вычисления. У нас есть 1 для регистрации первых элементов. n / 2 любых элементов. Хотя здесь у нас есть цикл while ,..

Изучение алгоритмов для массивов и строк: два указателя, скользящее окно и сумма префиксов
Изучение алгоритмов для массивов и строк: два указателя, скользящее окно и сумма префиксов Массивы и строки являются фундаментальными структурами данных в информатике и программировании. Эффективное манипулирование и обработка этих типов данных имеет решающее значение для решения широкого круга задач. В этом посте для разработчиков мы рассмотрим три популярных алгоритмических метода работы с массивами и строками: Два указателя , Скользящее окно и Сумма префиксов . . Мы..

Знайте временную сложность вашего программного кода
Пошаговое руководство по нотации Big-O Введение в структуру данных: В нашей повседневной жизни мы всегда сталкиваемся с различными сценариями, когда организованные вещи облегчают нашу жизнь. Например, в случае с изображением А ниже выбор платья, безусловно, займет меньше времени, чем поиск платья в захламленном шкафу, как на рисунке Б. Это же правило действует и в мире программирования. Структура данных  – это способ организации данных в памяти вашего компьютера, чтобы упростить..

Структуры данных: связанные списки
Добро пожаловать в мою серию обучающих материалов по структуре данных. Сегодня мы изучим связанные списки и как реализовать их в JavaScript . Что такое связанные списки? Связанные списки — это простая, динамичная, легкая и гибкая структура данных. Подобно массивам, элементы хранятся в списке последовательно; однако элементы хранятся не в соседних блоках памяти, а в «узлах» или объектах, которые связаны через указатели памяти. Они полезны для простого добавления или удаления..