Як тільки ви допускаєте той факт, що більші та більші словники займають більше пам'яті, рухаючись далі по ієрархії кеш-пам’яті і, врешті-решт, сповільнюючи обмін місцями на диску, важко стверджувати, що це справді O (1). Продуктивність словника буде повільнішою, оскільки вона збільшується, ймовірно, надаючи O (log N) часову складність. Не вірите мені? Спробуйте самі, використовуючи 1, 100, 1000, 10000 і так далі елементи словника, до 100 мільярдів, і виміряйте, скільки часу потрібно на практиці для пошуку елемента.
Однак якщо ви спрощуєте припущення, що вся пам’ять у вашій системі є оперативною пам’яттю, і до неї можна отримати доступ за постійний час, то ви можете стверджувати, що словник має значення O (1). Це припущення є загальним, хоча це насправді не відповідає дійсності для будь-якої машини, що має простір для обміну дисками, і все одно досить дискусійне в будь-якому випадку, враховуючи різні рівні кешування процесора.
the growth
складності з різними входами. Справа не в тому, скільки у вас операцій. Наприклад: з 1 значенням у вас єx
секунди, зіn
значеннями вам потрібніroughly
x*n
секунди => O (n).x
може бути багато операцій у поєднанні.