算法入门第一章--算法认知
如果你是一个计算机专业人士,那么你最好关注计算机算法!! ————《算法基础:打开算法之门》
什么是算法?
常见的回答就是:完成一个任务所需的一些列系统步骤。
我们想从一个计算机算法中获得什么?
计算机算法解决计算问题。我们希望从一个计算机中获取两个结果:给定一个问题输入,他应总能产生该问题的正确输出结果,并且运行该算法时,应该能够有效地利用计算机资源。
这里有两个必要条件:正确性、资源利用。
一、正确性
有确定解和近似算法。
我们通常会精确地定义一个正确的解决方案设计的内容。
但有时候,对于某些问题,可能很难甚至不可能判定一个算法是否产生了正确的输出。例如一个低像素的图案标(5orS)表示的是5还是S? 然而,有些时候我们能够接受可能会产生错误解的算法,只要错误的频率可以被控制。加密算法就是一个典型的范例。
二、资源利用
什么样的算法才能算称为高效使用计算机资源的算法呢?
时间
一个能给出正确输出但是会花费很长时间才能得出结果的算法可能是没有价值的。
空间
由于一个计算机必须能够在可用的内存空间上运行,因此我们可能还需要考虑该算法需要占用多大的内存空间(它的“内存占用量”)。
算法的实际运行时间还与算法本身之外的几个因素有有关:计算机的速度、实现算法的编程语言、将源程序转换成计算机能执行的目标代码的编译器或者解释器、程序员的程序编写技术,以及与正运行的程序并行执行的其他进程。
浙公网安备 33010602011771号