软考程序类专题六_程序设计语言基础和算法设计

2007-9-17 17:24:50   Count:

① 程序设计语言的基本概念。
② 程序设计语言的特点与分类。
③ 汇编程序和解释程序的工作原理及其区别。
④ 编译程序的基本工作原理。
⑤ 算法的基本概念和算法的时间复杂度分析和空间复杂度分析。
⑥ 迭代算法的基本思想及其用法。
⑦ 穷举算法的基本思想。
⑧ 递推与递归算法的基本思想。
⑨ 回溯法、贪心法、分治法、动态规划法的基本思想。

软考程序类专题六: 程序设计语言基础和算法设计(20070906)在线专题授课音视频

(本课程正式学员可登录学习系统,进入对应课程,在窗口左边的“课程资料室”内进行在线浏览。)

知识要点:
  1.算法设计的基本概念、特性和目标
  2.常用算法的基本思想(迭代、穷举搜索法、递推法、递归法、回溯法、贪心法、分治法、动态规划法、分支限界法和概率算法简介)

一. 算法的5个重要特性:

1. 有穷性。
  在执行有穷步之后结束,且每一步可在有穷时间内完成。

2. 确定性。
  每一条指令必须有确切的含义,并且,在任何条件下,算法只有惟一的一条执行路径,即对于相同的输入只能得出相同的输出。

3. 可行性。
  算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。

4. 输入。
  有零个或多个输入。

5. 输出。
  有一个或多个输出。

二. 递推法的基本思想:

  递推法是利用问题本身所具有的一种递推关系,求问题解的一种方法。能采用递推法构造算法的问题有重要的递推性质,即当得到问题规模为 的解后,由问题的递推性质,能从已求得的规模为 的一系列解,构造出问题规模为i的解。

三. 递归法的基本思想:

  能采用递归描述的算法通常有这样的特征:为求解规模为N的问题设法将它分解成一些规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模稍大问题的解。
  在编写递归函数时要注意,函数中的局部变量和参数只是局限于当前调用层的,当递推进入“简单问题”层时,原来层次上的参数和局部变量便被隐蔽起来。在一系列“简单问题”层,它们各有自己的参数和局部变量。

四. 回溯法的基本思想:

  回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验。当发现当前候选解不可能是解时,就选择下一个候选解;倘若当前候选解除了还不满足问题规模要求外,满足所有其他要求时,继续扩大当前候选解的规模,并继续试探。如果当前候选解满足包括问题规模在内的所有要求时,该候选解就是问题的一个解。在回溯法中,放弃当前候选解,寻找下一个候选解的过程称为回溯;扩大当前候选解的规模,并继续试探的过程称为向前试探。

五. 动态规划法的基本思想:

  经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题,为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。

六. 贪心法的基本思想:

  贪心法是一种不追求最优解,只希望得到较为满意解的方法。贪心法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况,所以贪心法不要回溯。

(未完……本课程正式学员可登录学习系统,进入对应课程,在窗口左边的“课程资料室”内进行在线浏览。)

浏览该文章的用户为您推荐了该信息: 
       
   
   
 
站内检索:
本月授课安排
栏目导航
阅读排行