背景:软考准备的过程中总会出现比较棘手的问题,而算法设计部分就是一块儿比较“难啃的骨头”。软考后面的第四道大题就是算法分析题,考验我们的逻辑分析能力和算法分析能力,Are you ready?开始我们的算法旅程吧!
一、算法
算法(Algorithm)是对待问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。此外,一个算法还具有5个重要特征:有穷性、确定性、可行性、输入、输出。
二、算法分析
通常,求解一个问题可能会有多种算法可以选择,选择的主要标准首先是算法的正确性、可靠性、简单性和易理解性。其次是算法的时间复杂度和空间复杂度要低。
在计算机资源中,最重要的是时间和空间(存储器)资源,因此复杂度分析主要包括时间复杂度和空间复杂度。
三、算法的表示
常用的表示算法的方法有自然语言、流程图、程序设计语言和伪代码。
四、算法设计
递归是指子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己。
递归的两个基本要素:边界条件,即确定递归到何时终止,也称为递归出口;递归模式,即大问题是如何分解为小问题的,也称递归体。
例:阶乘函数