在大学中,在我们的算法课程中,我们学习如何精确计算实际使用的各种简单算法(例如哈希表或快速排序)的复杂性。
但是现在在一个大型软件项目中,当我们想使其更快时,我们所要做的只是看各个部分-那里有一些嵌套循环,可以用更快的哈希表代替,这里的慢速搜索可以通过更花哨的技术-但我们从未计算过整个流程的复杂性。
有什么办法吗?还是在实践中人们只是使用快速算法依靠“本地”来使整个应用程序更快,而不是全局地考虑整个应用程序?
(因为在我看来,要证明如果您堆积大量已知非常快速的算法,那么最终还是会得到一个整体快速的应用程序。)
我之所以这样问,是因为我的任务是加快别人编写的大型项目的速度,其中许多算法正在交互并处理输入数据,因此我不清楚在单一算法上更快地完成单一算法的影响。整个应用程序。
n
增加。