I am a teacher!

导航

2019年7月7日 #

BFS(一):广度优先搜索的基本思想

摘要: 广度优先搜索BFS(Breadth First Search)也称为宽度优先搜索,它是一种先生成的结点先扩展的策略。 在广度优先搜索算法中,解答树上结点的扩展是按它们在树中的层次进行的。首先生成第一层结点,同时检查目标结点是否在所生成的结点中,如果不在,则将所有的第一层结点逐一扩展,得到第二层结点, 阅读全文

posted @ 2019-07-07 19:34 aTeacher 阅读(31338) 评论(2) 推荐(4) 编辑

DFS(一):深度优先搜索的基本思想

摘要: 采用搜索算法解决问题时,需要构造一个表明状态特征和不同状态之间关系的数据结构,这种数据结构称为结点。不同的问题需要用不同的数据结构描述。 根据搜索问题所给定的条件,从一个结点出发,可以生成一个或多个新的结点,这个过程通常称为扩展。结点之间的关系一般可以表示成一棵树,它被称为解答树。搜索算法的搜索过程 阅读全文

posted @ 2019-07-07 18:55 aTeacher 阅读(7895) 评论(0) 推荐(0) 编辑

2019年7月6日 #

递归(七):递归程序填空

摘要: 1. 字母组串(2017年第8届蓝桥杯省赛试题) 由 A,B,C 这3个字母就可以组成许多串。比如:"A","AB","ABC","ABA","AACBB" .... 现在,小明正在思考一个问题:如果每个字母的个数有限定,能组成多少个已知长度的串呢? 他请好朋友来帮忙,很快得到了代码,解决方案超级简 阅读全文

posted @ 2019-07-06 20:34 aTeacher 阅读(715) 评论(0) 推荐(0) 编辑

递归(六):递归小程序阅读

摘要: 阅读下列程序,写出程序执行后的输出结果。 1. #include <iostream> using namespace std; int fun(int x){ int f; if (x<=2) f=1; else f= fun(x-1)+fun(x-2); return f;}int main() 阅读全文

posted @ 2019-07-06 10:13 aTeacher 阅读(1281) 评论(0) 推荐(0) 编辑

2019年6月27日 #

递归(五):递归图形

摘要: 【例1】递归三角形图案。 输入一个正整数n(n<=7),按图1的示例输出相应的由星号组成的三角形图案。 图1 n分别为2、3、4、5的三角形图案 (1)编程思路。 根据题目示例可知,度数为n的三角形图案,将占2n-1行2n-1列,可以用一个二维字符数组来存储图形中各个字符,因为n<=7,而26=64 阅读全文

posted @ 2019-06-27 12:45 aTeacher 阅读(3682) 评论(0) 推荐(0) 编辑

2019年6月26日 #

递归(四):组合

摘要: 排列组合是组合学最基本的概念。所谓排列,就是指从给定个数的元素中取出指定个数的元素进行排序。组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。 排列与组合在日常生活中应用较广,比如在考虑某些事物在某种情况下出现的次数时,往往需要用到排列和组合。 【例1】取值组合。 有一个集合拥有m个元 阅读全文

posted @ 2019-06-26 19:43 aTeacher 阅读(1474) 评论(0) 推荐(0) 编辑

递归(三):排列

摘要: 排列组合是组合学最基本的概念。所谓排列,就是指从给定个数的元素中取出指定个数的元素进行排序。组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。 排列与组合在日常生活中应用较广,比如在考虑某些事物在某种情况下出现的次数时,往往需要用到排列和组合。 【例1】n位二进制数的全排列。 编写一个 阅读全文

posted @ 2019-06-26 18:31 aTeacher 阅读(877) 评论(0) 推荐(2) 编辑

2019年6月25日 #

递归(二):正整数的拆分

摘要: 【例1】求正整数的拆分数。 将正整数s表示成一系列正整数之和,s=n1+n2+…+nk,其中n1>=n2>=…>=nk, k>=1。正整数s的不同拆分个数称为s的拆分数。例如,正整数6有11种不同的拆分,分别是: 6; 5+1; 4+2; 4+1+1; 3+3; 3+2+1; 3+1+1+1; 2+ 阅读全文

posted @ 2019-06-25 20:57 aTeacher 阅读(3301) 评论(0) 推荐(0) 编辑

递归(一):递归的基本思想

摘要: 递归是算法设计中的一种基本而重要的算法。递归方法通过函数调用自身将问题转化为本质相同但规模较小的子问题,是分治策略的具体体现。 递归算法的定义:如果一个对象的描述中包含它本身,我们就称这个对象是递归的,这种用递归来描述的算法称为递归算法。 先来看看大家熟知的一个的故事: 从前有座山,山上有座庙,庙里 阅读全文

posted @ 2019-06-25 16:53 aTeacher 阅读(12373) 评论(0) 推荐(0) 编辑

2019年6月14日 #

递推和迭代的比较

摘要: 迭代是一种不断用变量的旧值推出新值的过程。例如,程序设计中常用到的计数cnt=cnt+1(或cnt++),就是用变量cnt的值加上1后赋值给cnt;对k的求和s=s+k,就是用变量s的值加上k后赋值给s。这种用变量cnt、s的新值取代旧值的过程,实际上就是迭代。 递推实际上也是根据递推关系式不断推出 阅读全文

posted @ 2019-06-14 18:28 aTeacher 阅读(4025) 评论(0) 推荐(1) 编辑