什么是算法?
算法是利用计算机解决问题的处理步骤,简而言之,算法就是解决问题的步骤。
算法不仅仅用于计算机的数据处理,现实世界中的各种问题也需要结合算法的概念来解决,其中,具有代表性的就是烹饪中用到的食谱,食谱是各种美味料理的制作方法,需要用一定的步骤表示出来。
算法是古老智慧的结晶,是程序的范本,学习算法才能编写出高质量的程序。
算法的改进/食谱的改进:
为什么要学习算法?
学习算法的同时能提高自己的编程能力。一个好的算法是编写程序的模型,因为它能创造计算机程序,其中还包含了程序的精髓。学过算法的人写出的程序和没学过算法的人写出的程序有明显的差距。要写出既能正确执行又能提高效率的好程序,算法的学习是不可或缺的。
算法的学习类似于学习游戏攻略,有了攻略就能轻松取得游戏的成功。
怎么样的解决问题方案才称为算法?
算法必须具备两个重要条件:
有效性:算法必须要为给定的任务给出正确的结果,即,有满足条件的输入值时,此算法一定要保证正常工作(返回正确的输出值)。表明算法有效性的方法之一就是断点。断点设置在算法的任意位置上,判断此位置是否满足给出的条件,即,程序是否正确运行。
终止性:算法中没有永远反复执行,即,没有无限循环,且不返回答案的情况。算法终止性可以用反复处理结束条件的判断变量,或经过有限次的反复一定能到达结束条件等方法证明。
算法有哪些例子?
给计算机编程带来方便的算法种类繁多,如技术计算(实现技术计算的算法,迪杰斯特拉法,素数,最大公约数)、排序(冒泡、选择、归并、希尔等)、查找(线性、二分法)、字符串模式匹配(KMP算法)。
算法的基础——结构化程序设计的思想
用计算机编写程序时,为了提高应用程序的效率,把设计上的错误最小化,有一种编程思想叫做结构化程序设计。
结构化程序设计中所有的处理流程,可以用以下三种结构组合而成:
顺序结构:按照所述顺序处理
选择结构:根据判断条件改变执行流程
循环结构:当条件成立时,反复执行给定的处理操作