禁止转载,来源:totuma.cn
1.2 算法和算法的评估
算法是一组有序的操作步骤,用于解决特定问题或执行特定任务。它是一种精确而有限的计算过程,可以用来处理输入数据并产生输出结果。 我们的目标是设计既快又省内存的数据结构与算法。而有效地 评估算法效率至关重要,因为只有这样我们才能将各种算法进行对比,从而指导算法设计与优化过程。
总的来说算法就是解决问题的步骤。
⚖️ 如何评估算法的性能
首先我们能想到的自然是统计我们解决这个问题所花费的时间,但是算法的执行时间非常依赖执行环境也就是我们的电脑的性能,如果我们处理器是i9-14900K自然比处理器是r7-5800H所花费的时间少很多,这样就很不公平了,难以排除测试环境的干扰因素;
另外如果我们进行计算的规模很大的时候,它所花费的时间自然也很多,而且对于千万级或者亿万级次的执行,我们进行执行时间的统计自然也是不可能的,所以这种事后统计的方法是不可取的。
那既然事后统计不可取,我们就采用事前统计,也就是我们不依赖具体的执行环境、不用具体的测试数据,在算法实现前,我们在脑海中就进行算法性能的评估,这就需要我们引入复杂度的概念。当然我们进行算法性能评估的时候一般会从时间复杂度和空间复杂度两个维度来进行评估分析。