算法设计与分析

阶乘

Public static int factorial (int n){

If (n==0) return 1;

return*factorial(n-1);

}

Hanoi

Public static void hanoi(int n, int a, int b, int c){

if (n>0){

hanoi (n-1,a,b,c );

move(a,b);

hanoi(n-1,c,b,a);

}}

Fibonacci 数列

Public static int Fibonacci(int n){

If (n

Return Fibonacci(n-1)+Fibonacci(n-2);

}

算法:算法是指解决问题的方法的过程。满足一下性质:1输入:有零个或多个输入;2输出:产生知道一个量作为输出;3确定性:组成算法的每条指令时清晰的、无歧义的。4、有限性:每天指令执行的次数和时间都是有限的。

程序:程序是算法用某种程序设计语言具体实现的,它不满足算法的有限性。 P 类:有确定性多项式时间算法

P={L|L是一个能在多项式时间内被一台DTM 所接受的语言}

N 类:没有确定性多项式时间算法

NP 类:有非确定性多项式时间算法,但不能证明没有确定性多项式时间算法 NP={L|L是一个能再多项式时间内能被一台NDTM 所接受的语言}

NPC 问题:定义:语言L 是NP 完全的当且仅当

(1)L∈NP ;(2)对于所有L’∈NP 有L’ ∝p L。

如果有一个语言L 满足上述性质(2),但不一定满足性质(1),则称该语言是NP 难的。所有NP 完全语言构成的语言类称为NP 完全语言类,记为NPC 。

NP 完全问题 P 是否等于NP

NP 完全问题都还没有多项式时间算法。对于这类问题,通常可采取以下几种解题策略:

(1)只对问题的特殊实例求解

(2)用动态规划法或分支限界法求解

(3)用概率算法求解

(4)只求近似解

(5)用启发式方法求解

算法的复杂性(度):算法运行所需要的计算机资源量。需要的时间资源量成为时间复杂性,需要的控件资源量成为控件复杂性。

贪心算法满足的性质:(1)贪心选择性质;(2)最优子结构性质。

动态规划的两个重要性质:(1)最优子结构;(2)问题重叠性质;

递归:直接或间接地调用自身的算法成为递归算法:

动态规划算法基本思想是将待求解问题分解成若干个子问题,先求解子问题,

然后从这些子问题的解得到原问题的解。

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。基本思想是找出整体当中每个小的局部的最优解,并且将所有的这些局部最优解合起来形成整体上的一个最优解。

回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。 (碰壁回头)

分支限界法基本思想常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。常见的分支限界法

(1)队列式(FIFO)分支限界法

按照队列先进先出(FIFO )原则选取下一个节点为扩展节点。

(2)优先队列式分支限界法

按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。

硬件厂商XYZ 公司宣称他们最新研制的微处理器运行速度为其竞争对手ABC 公司同类产品的100倍。对于计算复杂性分别为n ,n 2,n 3和n !的各算法,若用ABC 公司的计算机在1小时内能解输入规模为n 的问题,那么用XYZ 公司的计算机在1小时内分别能解输入规模为多大的问题?

解答:

n '=100n ;

n ' 2=100n 2,∴ n'=10n ;

n ' 3=100n 3,∴ n '=102/3n =4.64n ;

n '!=100n ! ,∴ n '

阶乘

Public static int factorial (int n){

If (n==0) return 1;

return*factorial(n-1);

}

Hanoi

Public static void hanoi(int n, int a, int b, int c){

if (n>0){

hanoi (n-1,a,b,c );

move(a,b);

hanoi(n-1,c,b,a);

}}

Fibonacci 数列

Public static int Fibonacci(int n){

If (n

Return Fibonacci(n-1)+Fibonacci(n-2);

}

算法:算法是指解决问题的方法的过程。满足一下性质:1输入:有零个或多个输入;2输出:产生知道一个量作为输出;3确定性:组成算法的每条指令时清晰的、无歧义的。4、有限性:每天指令执行的次数和时间都是有限的。

程序:程序是算法用某种程序设计语言具体实现的,它不满足算法的有限性。 P 类:有确定性多项式时间算法

P={L|L是一个能在多项式时间内被一台DTM 所接受的语言}

N 类:没有确定性多项式时间算法

NP 类:有非确定性多项式时间算法,但不能证明没有确定性多项式时间算法 NP={L|L是一个能再多项式时间内能被一台NDTM 所接受的语言}

NPC 问题:定义:语言L 是NP 完全的当且仅当

(1)L∈NP ;(2)对于所有L’∈NP 有L’ ∝p L。

如果有一个语言L 满足上述性质(2),但不一定满足性质(1),则称该语言是NP 难的。所有NP 完全语言构成的语言类称为NP 完全语言类,记为NPC 。

NP 完全问题 P 是否等于NP

NP 完全问题都还没有多项式时间算法。对于这类问题,通常可采取以下几种解题策略:

(1)只对问题的特殊实例求解

(2)用动态规划法或分支限界法求解

(3)用概率算法求解

(4)只求近似解

(5)用启发式方法求解

算法的复杂性(度):算法运行所需要的计算机资源量。需要的时间资源量成为时间复杂性,需要的控件资源量成为控件复杂性。

贪心算法满足的性质:(1)贪心选择性质;(2)最优子结构性质。

动态规划的两个重要性质:(1)最优子结构;(2)问题重叠性质;

递归:直接或间接地调用自身的算法成为递归算法:

动态规划算法基本思想是将待求解问题分解成若干个子问题,先求解子问题,

然后从这些子问题的解得到原问题的解。

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。基本思想是找出整体当中每个小的局部的最优解,并且将所有的这些局部最优解合起来形成整体上的一个最优解。

回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。 (碰壁回头)

分支限界法基本思想常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。常见的分支限界法

(1)队列式(FIFO)分支限界法

按照队列先进先出(FIFO )原则选取下一个节点为扩展节点。

(2)优先队列式分支限界法

按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。

硬件厂商XYZ 公司宣称他们最新研制的微处理器运行速度为其竞争对手ABC 公司同类产品的100倍。对于计算复杂性分别为n ,n 2,n 3和n !的各算法,若用ABC 公司的计算机在1小时内能解输入规模为n 的问题,那么用XYZ 公司的计算机在1小时内分别能解输入规模为多大的问题?

解答:

n '=100n ;

n ' 2=100n 2,∴ n'=10n ;

n ' 3=100n 3,∴ n '=102/3n =4.64n ;

n '!=100n ! ,∴ n '


相关文章

  • 算法设计技术与方法课程教学大纲
  • <算法设计技术与方法>教学大纲 一.课程基本信息 1.课程编码: 2.课程名称(中文):算法设计技术与方法 课程名称(英文):Algorithms Design Techniques and Analysis 3.学时/学分:3 ...查看


  • 2015数据挖掘导论期末论文题目
  • <数据挖掘导论>期末设计题目 说明: (1)每个学生只选一个题目, 两个同学的题目不要重复 (2)从网上下载或相互抄袭的一律不及格 (3)期末设计 封面格式: 正文包括:引言(或课题意义). 相关知识(所做题目涉及的文献综述). ...查看


  • 数据结构A教学大纲
  • 数据结构A 教学大纲 (Data Structures A) 课程编号: 06311360 学 分: 5.0 学 时: 75 (其中:讲课学时:60 实验学时:0 上机学时:15) 先修课程:离散数学.程序设计基础.面向对象程序设计 适用专 ...查看


  • 基于HADOOP的大数据描述统计分析
  • 作者:宋廷山郭思亮韩伟 统计与信息论坛 2016年01期 一.研究背景 据IBM估算,全世界每天大约产生250兆字节的数据,而且世界上大约90%的数据是在近两年的时间里产生的[1].这些数据的来源也相当广泛:如各种互联网企业,像SNS.微博 ...查看


  • 计算机算法分析与设计+++论文2
  • 河北科技师范学院 欧美学院 算法设计与分析个人总结 指导教师 院 系 班 级 学生姓名 学 号 引言:对于计算机科学来说,算法分析与设计是至关重要的.在一个大型软件系统的开发中,设计出有效的算法将起到决定性的作用.通俗的讲,算法是解决问题的 ...查看


  • 程序设计报告模板
  • 程序设计实践 设 计 报 告 课题名称:__windows编程画图时钟______ 学生姓名:__孙振超____________________ 班 级:___2012211111_______________ 班内序号:___24____ ...查看


  • 计算机算法中的数学方法研究_崔守梅
  • 2006年第2期 淄博师专学报 Jo urnal of Zibo N or mal Colleg e 总第4期 计算机算法中的数学方法研究 崔守梅1 郝 玲2 (1. 淄博师范高等专科学校数理科学系, 山东淄博255100; 2. 淄博师范 ...查看


  • 粒子群算法及应用
  • 本书简介 粒子群算法是一种新的模仿鸟类群体行为的智能优化算法,现已成为进化算法的一个新的重要分支.全书共分为八章,分别论述了基本粒子群算法和改进粒子群算法的原理,并且详细介绍了粒子群算法在函数优化.图像压缩和基因聚类中的应用,最后给出了粒子 ...查看


  • 人教版高二年级算法案例的教学设计
  • 人教版高二年级"算法案例--辗转相除法与更相减损术"的教学设计 松滋市贺炳炎中学 袁文 [email protected] 1. 内容和内容解析 (1)内容: 本节内容选自人教版普通高中课程标准实验教科书必修3第一章第3节 ...查看


  • 数据挖掘算法研究与综述
  • 第26卷第9期 V01.26 No.9 计算机工程与设计 ComputerEngineeringandDesign 2005年9月 Sept.2005 数据挖掘算法研究与综述 邹志文, 朱金伟 (江苏大学计算机学院,江苏镇江212013) ...查看


热门内容