1 算法的概念
算法就是对解题方法的精确而完整的描述,即解决问题的方法和步骤。
2 算法的特征
算法具有有穷性、确定性、可行性、有0或多个输入和有一个和多个输出等特征。有穷性指的是执行步骤是有限的;确定性指的是每个步骤的含义是确切的;可行性指的是每个步骤是可行的,并且能在有限的时间内完成;有0或多个输入指的是初始数据可以从外界输入,也可以包含于算法之中;有一个和多个输出指的是算法一定要有结果且以一定方式输出。
3 算法的表示方法
3.1 自然语言表示法
自然语言指的是人们在日常生活中使用的语言,用自然语言描述的算法通俗易懂,但缺乏直观性和简洁性,容易产生歧义。
3.2 流程图表示法
流程图也称程序框图,它是算法的一种图形化的表示方法,与自然语言相比,它描述的算法直观形象,更容易理解。
3.3 程序设计语言表示法
用编程的方法实现算法,这也是自然语言表示法和流程图表示法的最终目的。
4 算法的基本结构
4.1 顺序结构
顺序结构指的是在算法执行流程中,执行完一个处理步骤后,以此执行下一个步骤。
4.2 选择结构
选择结构也称分支结果或者判断结构。在算法执行过程中,对某个情况进行判断,不同的结果进行不同的处理。
4.3 循环结构
循环结构指的是在算法执行的流程中,对某个情况进行判断,对于其中的某个结果,可以先执行一些步骤,然后再次判断该情况,如果还是该结果,则继续循环执行步骤,直到这个情况发生其它结果,循环才结束。
5 算法的分类
可以通过Python编程实现的基本算法有解析算法、枚举算法、排列算法以及搜索算法等。
5.1 解析算法
解析指的是用数学公式描述客观事物之间的数量关系,而解析算法则用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题的求解。例如,编程实现用户输入长方形的长和宽,根据周长公式“长方形的周长=2×(长+宽)”,输出长方形的周长。
5.2 枚举算法
枚举算法又叫穷举算法,基本思想是把问题所有的解一一地罗列出来,并对每一个可能的解进行判断,以确定这个可能解是否是问题真正的解。若是,就采纳这个解,否则就抛弃。例如,使用循环的嵌套实现“鸡兔同笼”问题的求解,就是把鸡和兔数量的所有可能组合都枚举一遍,判断哪个数量组合满足给定头和脚总数的条件。
5.3 排序算法
排序算法指的是使用某种方法对给定的数列进行由小到大或者由大到小的排序。排序算法又分为冒泡排序、选择排序、插入排序等方法。
5.4 查找算法
查找算法指的是使用某种方法在给定的数列中查找指定数,返回该数在数列中的位置。查找算法主要分为顺序查找和对分查找两种。