用计算机解决一个确定的数学问题,需要设计问题求解的方法即算法设计。这一步要求建立问题的求解模型,确定问题的数据模型并在此模型上定义一组运算。接着借助于对这组运算的调用和控制,形成算法并用自然语言来表述.然后将非形式自然语言标的算法转变为一种程序设计语言表达的算法。一般来说,算法的执行效率受3个因素的制约:
算法本身的复杂性。算法的复杂性是算法运行所需要的计算机资源的量,需要的时间资源的量称作时间复杂性,需要的空间(即存储器)资源的量称作空间复杂性。这个量集中反映算法中所采用的方法的效率。
数据模型上的运算以数据模型中的数据变量作为运算对象,或者运算结果,或者二者兼而有之。所以数据模型上的运算依赖于数据模型的具体表示。有了数据模型的具体表示,有了数据模型上运算的具体实现,运算的执行效率随着确定。
开发语言和运行环境支持编程框架分为解释型的编程框架和编译型的编程框架两种。后者由于它是编译后运行的,所以执行效率要比前者高得多。