MySQL ROW_COUNT после ЗАМЕНЫ

На практике это O (1), но на самом деле это ужасное и математически неосмысленное упрощение. Обозначение O () говорит о том, как работает алгоритм, когда размер проблемы стремится к бесконечности. Hashmap get / put работает как алгоритм O (1) для ограниченного размера. Предел достаточно велик из памяти компьютера и с точки зрения адресации, но далеко от бесконечности.

Когда кто-то говорит, что hashmap get / put равен O (1), он должен действительно сказать, что необходимое время поскольку get / put более или менее постоянна и не зависит от количества элементов в хэш-карте, поскольку хэш-карта может быть представлена ​​в реальной вычислительной системе. Если проблема выходит за пределы этого размера, и нам нужны большие хешмапы, то через некоторое время число бит, описывающее один элемент, также будет увеличиваться по мере того, как мы исчерпываем возможные описываемые различные элементы. Например, если мы использовали хэш-карту для хранения 32-битных номеров, а затем увеличиваем размер проблемы, чтобы в хэш-карте было больше 2 ^ 32-битных элементов, тогда отдельные элементы будут описаны с более чем 32 битами.

Число бит, необходимых для описания отдельных элементов, это log (N), где N - максимальное количество элементов, поэтому get и put действительно O (log N).

Если вы сравниваете его с набором деревьев, который является O (log n), тогда хэш-набор равен O (long (max (n)), и мы просто чувствуем, что это O (1), потому что на некоторой реализации max (n) фиксированный, не изменяется (размер хранимых объектов измеряется в битах), и алгоритм, вычисляющий хэш-код, выполняется быстро.

Наконец, если поиск элемента в любой структуре данных был O (1), мы будет создавать информацию из воздуха. Имея структуру данных из n элемента, я могу выбрать один элемент n различными способами, при этом я могу кодировать информацию о битах (n) .Если я могу кодировать это в нулевом бите (то есть wh в O (1) означает), то я создал бесконечно сжатый ZIP-алгоритм.

2
задан Salman A 18 January 2019 в 10:55
поделиться

1 ответ

На самом деле поведение очень хорошо задокументировано :

Для операторов REPLACE значение затрагиваемых строк равно 2, если новая строка заменяет старую строку, поскольку В этом случае одна строка была вставлена ​​после удаления дубликата.

0
ответ дан Salman A 18 January 2019 в 10:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: