那么,究竟什么是算法(Algorithm)呢?
从字面上理解,即用于计算的方法,我们使用该方法可以获得预期的计算结果。
较为专业且被业界广泛认可的定义:算法是模型分析的一组可行的、确定的和有穷的规则。
不论何种定义,通俗的讲,算法是针对待解决问题之解题方案的准确而完整的描述,即解题步骤,它代表着用系统的方法描述解决问题的策略机制。从计算机程序设计的角度看,它由一系列解决问题的清晰指令构成,且能够根据规范的输入,在有限时间内获得所要求的输出。
问题不同,算法可能不同
如果一个算法有缺陷,或者不适用于待解决问题,执行该算法将不会获得预期的计算结果,此问题也就不能被按要求解决。比如,我们开发一款LBS社交应用,根据上线用户的定位坐标,快速计算每个用户附近的人以作好友推荐。简单效率的做法是,把用户经纬度转换为长度后,直接采用勾股定理求c边长度即可。因为用户不会关注和某人的距离已经精确到小数点后几位,更期望看到周围有多少人,大概距离是多长。但是,同样是求距离问题,如果要计算迫击炮弹的飞行距离,我们更应该用抛物线方程式而不是勾股定理,因为炮手更关注炮弹的飞行时长和精确的落弹点位置。
问题相同,算法可能不同
另外,解决相同的问题,可以采用不同的算法,但其耗费时间、空间或计算效率可能不同。比如,求2的n次方,可以用位移运算,也可以用乘法运算,甚之您可以用
转载:https://blog.csdn.net/goldentec/article/details/105314294
查看评论