分治算法
一、算法设计与分析的基本概念
一、算法
二、算法设计
三、算法的表示
二、算法分析基础
一、算法复杂度分析
三、分治法
一、递归的概念
二、分治法的基本思想
一、算法设计与分析的基本概念
一、算法
算法是指解决问题的一种方法或一个过程。是若干指令的有穷序列。算法具有5个重要特性:
(1)有穷性:算法必须在执行有穷步之后结束,且每一步都可以在有穷的时间内完成。
(2)确定性:算法的每条指令必须有确切的含义,无歧义的。
(3)可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。
(4)输入:一个算法有0个或多个输入。
(5)输出:一个算法有1个或多个输出。
算法与程序的区别:
算法是解决问题的方法、步骤;
程序是算法的具体代码实现;
算法是程序设计的核心,算法的好坏直接决定了程序的效率。
二、算法设计
常用的算法设计技术:
分治法 动态规划法 贪心法 回溯法 分支限界法
1
三、算法的表示
自然语言 流程图 程序设计语言 伪代码
1
二、算法分析基础
一、算法复杂度分析
算法复杂度 = 算法所需要的计算机资源
算法的时间复杂度T(n);
算法的空间复杂度S(n)。
其中n是问题的规模(输入大小)。
1.空间复杂度
空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。
temp=a;