数据结构与算法复杂度分析有哪些关键点?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4106个文字,预计阅读时间需要17分钟。
《极客时间——数据结构与算法之美》——我们的学习目标是让代码运行得更快、存储更节省空间。那么去了解代码的执行效率也是非常重要的一个环节。
摘录总结于极客时间——《数据结构与算法之美》
我们学习数据结构与算法的目的就是为了让代码运行的更快、存储更节省空间。那么去了解代码的执行效率也是重要的一环。其实,只要涉及到的数据结构与算法,就一定离不开时间、空间复杂度的分析,而且,个人认为复杂度分析可以是数据结构与算法最精髓的一环了,只要掌握了它,那么数据结构与算法的内容就算是掌握了一半。
为什么有复杂度分析? 你可能觉得我把算法直接在我的机器上跑一边然后通过检测软件来实时获取结果就好,难道实打实的数据还不如我们的脑测吗?这是因为一段代码被放到另一台机器上运行时,我们得到的结果可能完全不一致,比如我先拿 i9 处理器处理数据,又拿 i3 处理器处理数据,这就会导致差异,并且如果测试数据的规模不一致也会导致数据多样。
所以,我们需要一个不用具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法。这就是我们今天要讲的时间、空间复杂度分析方法
算法的执行效率其实就是粗略的估算算法执行的时间,我们来观察下面的代码(代码非常简单,就是从 1,2,3.....n 的累加)
int cal() {
int sum = 0;
int i = 1;
for (; i <= n; i++) {
sum = sum + i;
}
return sum;
}
从 CPU 的角度来看这段代码,,基本都是读数据、运算、写数据。
本文共计4106个文字,预计阅读时间需要17分钟。
《极客时间——数据结构与算法之美》——我们的学习目标是让代码运行得更快、存储更节省空间。那么去了解代码的执行效率也是非常重要的一个环节。
摘录总结于极客时间——《数据结构与算法之美》
我们学习数据结构与算法的目的就是为了让代码运行的更快、存储更节省空间。那么去了解代码的执行效率也是重要的一环。其实,只要涉及到的数据结构与算法,就一定离不开时间、空间复杂度的分析,而且,个人认为复杂度分析可以是数据结构与算法最精髓的一环了,只要掌握了它,那么数据结构与算法的内容就算是掌握了一半。
为什么有复杂度分析? 你可能觉得我把算法直接在我的机器上跑一边然后通过检测软件来实时获取结果就好,难道实打实的数据还不如我们的脑测吗?这是因为一段代码被放到另一台机器上运行时,我们得到的结果可能完全不一致,比如我先拿 i9 处理器处理数据,又拿 i3 处理器处理数据,这就会导致差异,并且如果测试数据的规模不一致也会导致数据多样。
所以,我们需要一个不用具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法。这就是我们今天要讲的时间、空间复杂度分析方法
算法的执行效率其实就是粗略的估算算法执行的时间,我们来观察下面的代码(代码非常简单,就是从 1,2,3.....n 的累加)
int cal() {
int sum = 0;
int i = 1;
for (; i <= n; i++) {
sum = sum + i;
}
return sum;
}
从 CPU 的角度来看这段代码,,基本都是读数据、运算、写数据。

