Відмінність елемента за O (n) часом?


21

Всі ми знаємо, що розрізнення елементів у моделі порівняння не може бути зроблено в час. Однак, на словах RAM, можна досягти кращого.о(нжурналн)

Звичайно, якщо припустити існування досконалої хеш-функції, яку можна обчислити в лінійний час, ми отримаємо алгоритм лінійного часу для розрізнення елементів: просто продовжуйте хешировать числа по одному і повертати 1, якщо відбувається зіткнення.

Однак є два питання: 1) більшість конструкцій досконалих хеш-функцій, які я міг би знайти використані випадковості, і 2) я не можу знайти дискусію про час попередньої обробки в будь-якому місці, тобто час, необхідний для вирішення того, яка функція хешу йде використовувати на основі вхідного набору чисел.

" Зберігання розрідженої таблиці з найгіршим часом доступуО(1) O ( 1 ) Фредмена та ін. Вирішує першу проблему, надаючи хеш-функцію з часом доступу в гіршому випадку, але нічого не говорить про другу проблему .О(1)

Отже, підводячи підсумок, ось що я хочу:

Створіть алгоритм, який задає набір з чисел (кожне число має біт довжиною) на слові RAM з довжиною слова , знаходить хеш-функцію в час, де . Функція повинна мати властивість, що для будь-якого кількість елементів що відображається на є постійною, а обчислення повинно прийматиn w w h : S { 1 , , m } O ( n ) m = O ( n ) h j { 1 , , m } S jSншшгод:S{1,,м}О(н)м=О(н)годj{1,,м}SjO ( 1 )год(i)О(1)час у "розумній" формі слова RAM, тобто модель не повинна дозволяти "екзотичним" функціям на словах оцінюватися в час.О(1)

Мені також хотілося б знати, чи є алгоритми для вирішення відмінності елементів у слові RAM, які взагалі не використовують хеш-функції.


8
Re: "Мені також хотілося б дізнатися, чи є алгоритми для вирішення відмінності елементів на слові RAM, які взагалі не використовують хеш-функції". - якщо ви хочете лише а не лінійний, існує велика робота над сортуванням слова RAM (див. En.wikipedia.org/wiki/Integer_sorting ). Деякі з цих алгоритмів використовують хешування, а інші - ні. о(нжурналн)
Девід Еппштейн

Чи дозволені приблизні рішення?
AT

(Я думаю, що) Ваш процес мислення пропускає один крок: 1. Ви постулюєте, що найкраща складність у моделі порівняння - 2. Ви запитуєте, як це можна покращити в моделі ОЗУ 3. Ви прямо запитуєте для рішення в O ( n ) час в моделі оперативної пам'яті. Швидше, вам слід вивчити рішення в o ( n log n ) в моделі оперативної пам'яті і подивитися, чи можете ви їх покращити? Θ(нжурналн)O(n)o(nlogn)
Джеремі

Сорт Radix занадто повільний для вас?
Томас Мюллер

Відповіді:


8

Елемент виразність може бути вирішена детермінованим в моделі RAM протягом часу Час:О(нжурналжурналн)о(нжурналн)

Сортуйте за часом у межах свої n чисел w біт, використовуючи алгоритм сортування, описаний Han в STOC 2002 ("Детерміноване сортування в O ( n журналу журналу n ) час та лінійний простір"), а потім сканувати в лінійному час для зіткнень.О(нжурналжурналн)ншО(нжурналжурналн)

Наскільки мені відомо, це найкращий результат, відомий на сьогоднішній день.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.