为了解决理解与执行这两者之间的矛盾人们常常使用一种称为伪码语言的描述方法来进行算法描述伪码语言介于高级程序设计语言和自然语言之间它忽略高级程序设计语言中一些严格的语法规则与描述细节因此它比程序设计语言更容易描述和被人理解而比自然语言更接近程序设计语言它虽然不能直接执行但很容易被转换成高级语言
算法性能分析与度量
我们可以从一个算法的时间复杂度与空间复杂度来评价算法的优劣
当我们将一个算法转换成程序并在计算机上执行时其运行所需要的时间取决于下列因素
⑴硬件的速度例如使用机还是使用机
⑵书写程序的语言实现语言的级别越高其执行效率就越低
⑶编译程序所生成目标代码的质量对于代码优化较好的编译程序其所生成的程序质量较高
⑷问题的规模例如求以内的素数与求以内的素数其执行时间必然是不同的
显然在各种因素都不能确定的情况下很难比较出算法的执行时间也就是说使用执行算法的绝对时间来衡量算法的效率是不合适的为此可以将上述各种与计算机相关的软硬件因素都确定下来这样一个特定算法的运行工作量的大小就只依赖于问题的规模(通常用正整数n表示)或者说它是问题规模的函数
⒈时间复杂度
一个程序的时间复杂度(Time complexity)是指程序运行从开始到结束所需要的时间
[] [] [] [] []