Фрази мінімальний час і максимальний час тут трохи оманливі. Коли ми говоримо про великі нотації O, то нас не цікавить саме той час, як час збільшується, коли розмір введення збільшується. І зазвичай це середній чи найгірший час, про який ми говоримо, а не найкращий випадок , який зазвичай не має сенсу для вирішення наших проблем.
Використовуючи пошук масиву у прийнятій відповіді на інше питання в якості прикладу. Час, необхідний для пошуку певного числа в списку розміру n, становить в середньому n / 2 * some_constant. Якщо ви ставитесь до цього як до функції f(n) = n/2*some_constant
, він збільшується не швидше, ніж g(n) = n
у тому сенсі, який дає Чарлі. Крім того, воно збільшується не повільніше, ніж g(n)
будь-яке. Отже, g(n)
насправді є і верхня межа, і нижня межа f(n)
позначення Big-O, тому складність лінійного пошуку рівно n , що означає, що це Тета (n).
У зв'язку з цим пояснення у прийнятій відповіді на інше питання не зовсім коректне, що стверджує, що O (n) є верхньою межею, оскільки алгоритм може працювати в постійний час для деяких входів (це найкращий випадок, про який я згадував вище, що насправді не те, що ми хочемо знати про час роботи).