数据结构与算法论持久战(C++版)"/>
数据结构与算法论持久战(C++版)
今天开始,也陆续更新数据结构篇记录笔记,开篇简单的说了下数据结构与算法对于一个工程师的重要性,那现在我们来想一下:程序的本质是什么?
客观上来讲,程序就是由一堆字符加符号组合成的英文文章;主观来说,就是解决问题的步骤,想想一个古老的脑经急转弯:怎么把大象放冰箱里?用程序来描述,就是三条语句:open -> put -> close。这就是把大象放冰箱里的三个步骤。说到这里,也许你还不清楚这与数据结构有什么关系,那么我们再来看一个例子:用程序实现1+2+...+100。
很多人看了就能顺手捏来,很多人都会写出下边的代码,编译运行,结果5050,很开心,我们的代码很正确。
int result = 0;
for(int i=1; i<=100; i++)
{result += i;
}
然而,解决问题的方法有三六九,下边我们再来看看上边那个问题的另一种解法:
int result = 0;
result = (1 + 100) * 100 / 2;
同样一个问题,第一种解法,使用了循环语句,而第二种只是一句数学运算就搞定,假如我们求的不是1到100,而是1到100000,那第一种要进行100000次循环,虽然结果也正确,但是别忘了:效率!
既然同样的问题可以有不同的解决方式,那么怎么来评价一个程序的好坏?
1、用尽量少的时间解决问题!
2、用尽量少的步骤解决问题!
3、用尽量少的内存解决问题!
而数据结构与算法,就是为了从上边三个方面去解决问题!这也是为什么要记录《数据结构与算法论持久战(C++版)》这一系列的博客,在自己进步的同时,如若能给你带来一点点帮助,就幸甚万分!
总结;
1、程序是为了解决实际问题而存在的
2、同一个问题可以有多种解决方案
3、专业程序员应该尽量追求高质量的程序
4、程序 = 数据结构 + 算法
更多推荐
数据结构与算法论持久战(C++版)
发布评论