购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1-10 对高效处理流程进行思考

算法、数据结构

把握算法与数据结构

解决问题的流程、计算方法被称为“ 算法 ”。当给定一个问题的时候,即使对同一输入获得的答案相同,也会有许多种流程可以导出答案(图1-17)。但是,只要明确了流程,无论是谁都能得到同样的答案。

在编程中,算法是使用计算机解决问题的流程或程序实现。如果存在多个同一输入生成相同结果的流程,根据源代码的编写方法和处理流程,运行所需的时间和所需的内存量会有所不同。因此,人们可以通过对编写方法和处理流程的斟酌,大幅压缩处理时间。

此外,根据程序保存数据的方式的不同,算法也会不同。例如,我们想在内存中存储大量数据,程序的处理方式也会不同,这具体取决于是将数据存储在连续区域中并按住址的顺序访问,还是添加表示下一个数据位置的数据,以便按从前到后的顺序访问。这种程序处理数据时的数据存储方法被称为“ 数据结构 ”(图1-18)。

算法的处理时间

采用某种算法的程序的运行时间会因输入数据的数量不同而大为不同。比如,程序处理10个数据可以瞬间完成,而处理1万个数据就需要较长时间,这一点很容易想象。

此时,对于输入个数与处理时间之间的关系进行思考具有重要意义。数据量达到原来的10倍、100倍时,处理时间也会达到原来的10倍、100倍吗?会达到原来的100倍、10000倍吗?我们可以通过这样的试验来比较算法的优劣。在分析数据的时候,我们如果 不在分析之前对处理时间事先做出预测,有可能会在处理过程中额外花费大量的时间。

图1-17 能够得到相同答案的方法有很多

图1-18 数据结构的实例

要点

用于解决问题的流程、计算方法被称为“算法”。

人们在编程的时候,除算法以外,还必须对存储数据的数据结构加以思考。 yFbGAu+FJF028R6sEg1IjQA6S2zH5cFhsexcsH5EUvjgofxJc4XeJscEQPdf3H3j

点击中间区域
呼出菜单
上一章
目录
下一章
×