Це буде залежати від контексту.
Як правило, "виправлення квадратичної помилки виконання програми". Однак, чи заслуговує це виправлення (зміна коду), залежить від контексту.
Майте на увазі, що бази даних надають безліч інструментів для підвищення часової складності. Наприклад, щоб отримати найкращі результати N з бази даних, просто скажіть так. При перетворенні неефективного кладу у вбудований оптимізований виклик пояснення видається зайвим.
Я вважаю, що алгоритм з квадратичним виконанням заслуговує на перегляд коду (обговорення) не стільки тому, що він повільний (повільний відносний; квадратичний швидкий у порівнянні з експоненціальним), а через інтуїцію людини (наприклад, ваші клієнти чи колеги-програмісти) вкрай незручні з функціоналом програмного забезпечення, яке занадто далеко відхиляється від лінійного виконання, через змішування очікувань від повсякденного життя.
Дуже багато скарг клієнтів на продуктивність програмного забезпечення належать до цих двох категорій:
Уся система (програмне та апаратне забезпечення) була визначена на основі передбачуваного використання. Минулого тижня все працює нормально, певна функціональність зайняла менше 5 секунд. На цьому тижні після встановлення оновлення ця функція займає більше 1 хвилини.
- Це порівняння з раніше орієнтованою роботою. Клієнт тримає майбутні показники абсолютної міри людського часового масштабу (від секунд до хвилини).
Я подав 100 робочих місць у систему. Чому на обробку потрібно 400 разів час порівняно з часом, необхідним для однієї роботи?
- Замовник очікує, що час обробки буде лінійним. Насправді, замовник не може зрозуміти або прийняти, що існують завдання, які повільніше, ніж лінійні.
З цієї причини замовник вважатиме час виконання помилковим, якщо обидва вірні:
- Повільніше, ніж лінійне
- Помітні (тобто потрапляють у часовий діапазон людини (довше, ніж секунди або хвилини) за типових розмірів завдань)
Законні аргументи, які пояснюють, що квадратичний алгоритм виконання не створює проблем (тобто не заслуговує на зміну коду):
- Розмір задачі, якою зазвичай займається ця квадратична функція виконання, дещо обмежений
- Зважаючи на типовий діапазон розмірів, фактичний (абсолютний) час виконання ще досить малий, щоб його звільнити
- Якщо користувач насправді намагається подати завдання, яке є досить великим, щоб бути помітним, він отримає повідомлення про тривалий час роботи
- Користувачі системи - всі експерти, тому вони знають, що роблять. Наприклад, користувачі API повинні були прочитати тонкий шрифт документації API.
Багато алгоритмів, корисних для типової розробки додатків, насправді повільніше, ніж лінійні (в основному O (N log N), як при сортуванні), тому масштабне програмне забезпечення насправді намагатиметься вирішити це, лише сортувавши відповідну частину Дані, або використовувати методи фільтрування гістограми (статистичної), що досягає аналогічного ефекту.
Це стосується клієнтів програмного забезпечення, але якщо ви вважаєте, що користувачі бібліотеки програмного забезпечення або функції API також є "клієнтами", то відповідь все одно застосовуватиметься.