Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.01.2022, 18:39
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Почему hash table имеет сложность O(1)?
Лично я представляю Hash Table примерно так:

let array = Array.from({length:5}, _=>Math.floor(Math.random()*100));
let keys = [];
for(let i = 0; i < 100; i++){
  keys[i] = array.includes(i)?i:0;
}
// Дальше уже делаем с массивом то, что хотели: сортируем или находим сумму элементов или ещё что-нибудь

В данном конкретном примере это куда как ближе к O(n^2) (O(n^2 + 75) = O(n^2)), чем к O(1).

Почему же считается O(1)? Только потому что 100 - константа? Или я вообще всё неправильно понимаю?
Ответить с цитированием
  #2 (permalink)  
Старый 06.01.2022, 19:59
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,514

O(1) - в подавляющем большинстве случаев. O(n) - в очень редком, когда надо рехэшить всю таблицу. Там ничто не ищется в цикле, хэш указывает куда надо смотреть сразу, без каких-либо переборов.
Как это достигается? По-разному, открой википедию и почитай.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как более правильно переписать код? Leon2110 AJAX и COMET 6 19.09.2018 15:49
Растянуть до конца странице pokk (X)HTML/CSS 18 16.01.2018 12:37
Почему не работает скрипт внутри контейнера table? follor Общие вопросы Javascript 0 29.10.2015 14:20
jQuery UI Tabs hash martinss jQuery 1 25.01.2014 18:54
Почему Java-версия интерфейсов Node имеет не стандартизованные имена? dump Общие вопросы Javascript 0 10.08.2012 13:19