В університеті на наших курсах з алгоритмів ми дізнаємося, як точно обчислити складність різних простих алгоритмів, які застосовуються на практиці, наприклад хеш-таблиць або швидкого сортування.
Але тепер у великому програмному проекті, коли ми хочемо зробити це швидше, все, що ми робимо, - це переглянути окремі фрагменти - кілька там вкладених циклів, які можна замінити більш швидкою хеш-таблицею, повільний пошук тут, який можна прискорити більш химерна техніка - але ми ніколи не обчислюємо складність всього нашого трубопроводу.
Чи можна це зробити? Або люди на практиці просто покладаються на "локально", використовуючи швидкий алгоритм, щоб зробити всю програму швидшою, а не глобально розглядати додаток у цілому?
(Тому що мені здається нетривіальним, щоб показати, що якщо ви збираєте велику кількість алгоритмів, які, як відомо, дуже швидко самостійно, ви також закінчуєте швидку програму в цілому.)
Я запитую це, бо мені доручено прискорити великий проект, який написав хтось інший, де багато алгоритмів взаємодіють і працюють над вхідними даними, тому мені незрозуміло, як швидше впливати на створення одного алгоритму вся програма.
n
збільшенням.