Я ищу алгоритм, который принимает O(1)
время как для search and insertion
.Есть ли какой-нибудь алгоритм, который принимает O (1) раз?
Есть ли доступный алгоритм? Является ли это возможным?
Я ищу алгоритм, который принимает O(1)
время как для search and insertion
.Есть ли какой-нибудь алгоритм, который принимает O (1) раз?
Есть ли доступный алгоритм? Является ли это возможным?
Теоретически у вас есть вставка O (1) и поиск хэш-карты, предполагая, что хеш является совершенным, а время вычисления хэша - O (1).
Если хэш-карта не будет переполнена данными, которые будут помещены в его структуру данных. – Vesper
Невозможно. Чтение ключей, на которые вы вставляете, будет лучше O (log n), поскольку ключ должен быть представлен в двоичном формате. Таким образом, каждый раз, когда вы удваиваете размер, вам нужно добавить дополнительную двоичную цифру в ключ, и поэтому он не будет O (1). Не говоря уже о фактическом введении значения.
Если мы не говорим о квантовых вычислениях?
Компьютеры читают слова 16 или 32 бита за раз. Ваша логика ускользает от меня. – EJP
Или 64 бит. Что это связано с O (...)? –
O (1) подразумевает постоянное количество времени для вставки в любую коллекцию размеров. Двойной размер коллекции, и он не влияет на время. Но каждый раз, когда я удваиваю размер коллекции, мне нужен более длинный ключ для представления элемента в коллекции. Для считывания ключа используется клавиша O (n), а ключ пропорционален log (m) количеству элементов в коллекции. –
Ум, хеш-стол? .. – dasblinkenlight
Алгоритм делать ** что **? – angelatlarge
Но время вставки в хеш-таблице равно O (n) в худшем случае. – mumair