|
Соответствие какова N сложность получения данных? | ☑ | ||
---|---|---|---|---|
0
ERWINS
18.03.17
✎
18:07
|
Что быстрее Таблица значений с индексом или Соотвестствие?
|
|||
1
Лефмихалыч
18.03.17
✎
18:12
|
различия не обладают статистической достоверностью - проверено экспериментально года 3 назад на разных объемах
|
|||
2
Лефмихалыч
18.03.17
✎
18:13
|
я отдаю предпочтение соответствию в виду более простого и понятного синтаксиса.
Если Кэш[Значение] = Неопределено тогда проще, чем Если Кэш.НайтиСтроку(Значение, Колонка) = Неопределено Тогда меньше букв, больше толку |
|||
3
Garykom
гуру
18.03.17
✎
18:14
|
Получения данных или поиска по ключу?
|
|||
4
ERWINS
18.03.17
✎
18:24
|
(3) поиск по ключу
по логике Соотвествие должно иметь порядок O(1), а таблицазначений с индексом O(log(N)) В свое время тестировал СписокЗначений там O(N^1.2) |
|||
5
vi0
18.03.17
✎
18:38
|
(0) тебе ехать или шашечки?
|
|||
6
orefkov
18.03.17
✎
20:44
|
(4)
Соответствие не может иметь O(1) - такое только у доступа в массиве по индексу. Скорее всего (не могу ручаться точно) - Соответствие основано на хэш-таблицах, а индекс в ТЗ на деревьях. |
|||
7
МихаилМ
18.03.17
✎
21:48
|
соответствие быстрее
|
|||
8
Волшебник
модератор
18.03.17
✎
22:20
|
соответствие быстрее для примитивных типов
|
|||
9
Скай
18.03.17
✎
22:28
|
Когда-то давно баловался
https://www.screencast.com/t/g9KqPYIXjg не помню уже, чем наполнял с точки зрения типов данных |
|||
10
NSSerg
19.03.17
✎
01:30
|
(6)вся суть хеша как раз в том и есть, что доступ к хеш-таблице это константа - О(1)
https://ru.m.wikipedia.org/wiki/Хеш-таблица Свойства хеш-таблицы Важное свойство хеш-таблиц состоит в том, что, при некоторых разумных допущениях, все три операции (поиск, вставка, удаление элементов) в среднем выполняются за время O(1). Но при этом не гарантируется, что время выполнения отдельной операции мало?. Это связано с тем, что при достижении некоторого значения коэффициента заполнения необходимо осуществлять перестройку индекса хеш-таблицы: увеличить значение размера массива H и заново добавить в пустую хеш-таблицу все пары. |
|||
11
Кирпич
19.03.17
✎
08:19
|
Нафига гадать, если можно просто попробовать. Все равно неизвестно, как оно в 1с внутри работает. Может оно внутри одинаково абсолютно.
|
|||
12
Пузан
19.03.17
✎
08:31
|
Хэш еще как бы почитать тоже нужно и на это тоже тратится время.
|
|||
13
orefkov
19.03.17
✎
08:39
|
(10)
Всё верно написали. Я то имел ввиду, что О(1) ГАРАНТИРОВАНО даёт только доступ к массиву по индексу. С хешем это не гарантировано и в худшем случае может достигнуть O(N) - если все ключи попали в один букет. На практике несколько коллизий всегда бывает. |
|||
14
NSSerg
19.03.17
✎
11:43
|
(13) Это из разряда что быстрая сортировка это не О(N ln N), а в худшем случае это квадрат?
В алгоритмике, если не указано иное - пишут среднюю сложность алгоритма, а если речь идет о худшем случае, то это обговаривается отдельно. Операция с хеш-таблицей О(1), быстрая сортировка О большое от N логарифмов. А в худшем случае случае операция с хеш-таблицей О(N), быстрая сортировка О(N*N) В (4) все написано верно, в (6) - неверно. |
|||
15
NSSerg
19.03.17
✎
12:01
|
В википедии умудрились написать что в качестве временой сложности алгоритма обычно имеют в виду худший случай, но это ошибка.
Обычно пишется так "Вероятность случайного возникновения худшего случая становится исчезающе малой, а намеренный подбор — практически неосуществимым. Ожидаемое время выполнения алгоритма сортировки составляет ..." |
|||
16
ERWINS
19.03.17
✎
12:29
|
(15) более того худший случай наиболее популярных алгоритмов хештаблицы это бесконечность как и средний.
|
|||
17
ERWINS
19.03.17
✎
12:33
|
извиняюсь это устаревшая информация. в новых и очень старых такой проблемы нет
|
|||
18
NSSerg
19.03.17
✎
12:57
|
(17) Максимальное - О(N) при добавлении элемента (add) при расширении таблицы. Так как это происходит раз в N операций добавления, на сложность алгоритма "в среднем" это не влияет. вероятность О(N) в остальных случаях исчезающе мала.
Количество проб "в среднем" в случае возникновения коллизии не зависит от размера таблицы. Поэтому сложность операций по Хеш-таблице "в среднем" равна О(1). Еще немного информации о реализации Hashtable в .Net http://www.cyberguru.ru/microsoft-net/net-framework/dotnet-structures-analysis2-page8.html |
|||
19
Тыгдымус
19.03.17
✎
13:13
|
(18) Так что быстрее, ТЗ или соответствие?
|
|||
20
ERWINS
19.03.17
✎
13:23
|
(18) если алгоритмы где теоретически возможно зацикливание
F=hash(S) Если не найден, то F=hash(S+F) атака на такое не найдена, но теоритически он имеет сложность бесконечность. Все современные алгоритмы лишены данной проблемы. Древние тоже были лишёны. |
|||
21
ERWINS
19.03.17
✎
13:23
|
(19) соотвествие
|
|||
22
NSSerg
19.03.17
✎
16:26
|
(20) Зацикливание чего?!
Даже если у тебя хеш-функция всегда выдает одно значение - сложность О(N) У тебя весь список хранится в одной ячейке. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |