码迷,mamicode.com
首页 >  
搜索关键字:递归算法    ( 1027个结果
排序算法——快速排序
参考书籍:《数据结构与算法分析——C语言描述》 快速排序是在实践中最快的已知排序算法,它的平均时间复杂度O(NlogN)。当然在最坏的情况下为O(N^2),但稍加努力就可以避免这种情形。 像归并排序一样,快速排序也是一种分治的递归算法,可简单表示如下: 将数组S排序的基本算法由下列简单的四步组成。 1、数组元素至少大于或等于4个,否则直接利用插入排序完成。 2、利用特定方法(三数...
分类:编程语言   时间:2015-05-09 16:40:30    阅读次数:129
颜色替换的递归算法
假设以二维数组g[1..m][1..n]表示一个图像区域,g[i][j]表示该区域中点(i,j)所具颜色,其值为从0到k的整数。试编写递归算法,将点(i0,j0)所在区域的颜色置换为颜色c。约定与(i0,j0)同色的上、下、左、右的邻接点为同色区域的点。表示图像区域的类型定义如下:/* 在g[1.....
分类:编程语言   时间:2015-05-08 14:38:27    阅读次数:188
递归算法——BOX FRACTAL 盒分形(POJ2083)
问题盒分形定义如下: 1度的盒分形为: X 2度的盒分形为: X X X X X如果B(n-1)表示n-1度的盒分形,则n度的盒分形递归定义如下:B(n-1) B(n-1) B(n-1) B(n-1) B(n-1) 请画出n度的盒分形的图形输入每行给出一个不大于7的正整数。输入的最后一行以-1表示输入结束输出对于每个测试用例,出书用’X’标记的盒分...
分类:编程语言   时间:2015-05-07 22:06:50    阅读次数:198
3.10 分层遍历二叉树
题目1:写一个函数,打印二叉树中某层次的节点(从左到右),其中根节点为第0层。 思路:利用递归算法,思想是:要求访问二叉树中第k层的节点,那么其实就是要访问“以该二叉树根节点的左右子节点为根节点的两颗子树”中层次为k-1的节点 代码: struct pNode { int data; pNode *lChild; pNode *rChild; }; int ...
分类:其他好文   时间:2015-05-07 14:40:05    阅读次数:146
C++输出全排列递归算法详细解释
中心思想: 设R={r1,r2,…,rn}是要进行排列的n个元素,Ri=R-{ri}. Perm(X)表示在全排列Perm(X)的每一个排列前加上前缀ri得到的排列。 (1)当n=1时,Perm(R)=(r),其中r是集合R中唯一的元素; (2)当n>1时,Perm(R)可由(r1)+Perm(R1),(r2)+Perm(R2),…,(rn)+Perm(Rn)构成。 那么具体...
分类:编程语言   时间:2015-05-07 00:58:47    阅读次数:171
排序算法--快速排序
快速排序之所以特别快,主要是由于非常精炼和高度优化的内部循环。像归并排序一样,快速排序也是一种分治的递归算法。数组S排序的基本算法由下列简单的四部组成:1.如果S中元素个数是0或1,则返回2.取S中任一元素v,称之为pivot(枢纽元,主元,基准)3.将S-{v}分成两个不想交的集合:S1={x∈S...
分类:编程语言   时间:2015-05-04 22:02:28    阅读次数:141
汉诺塔递归算法理解及实现
汉诺塔:(Hanoi)是一种玩具,如图![这里写图片描述] (http://img.blog.csdn.net/20150430225337439) 从左到右 A B C 柱 大盘子在下, 小盘子在上, 借助B柱将所有盘子从A柱移动到C柱, 期间只有一个原则: 大盘子只能在小盘子的下面. 问题理解与描述: 1.问题的理解与描述 问题的形式化表示为: 输入:圆盘数n,3根细杆—...
分类:编程语言   时间:2015-05-01 09:27:31    阅读次数:157
数据结构 - 二叉树的遍历
中序遍历二叉树1 递归算法 算法的递归定义是: 若二叉树为空,则遍历结束;否则 ⑴ 中序遍历左子树(递归调用本算法); ⑵ 访问根结点; ⑶ 中序遍历右子树(递归调用本算法)。中序遍历的递归算法void InorderTraverse(BTNode *T) { if (T==NULL) return; InorderTraverse(T->...
分类:其他好文   时间:2015-04-30 10:41:25    阅读次数:192
Java的递归算法
递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到可以直接求解,也就是说到了递推的出口,这样原问题就有递推得解。 关键要抓住的是: (1)递归出口 (2)地推逐步向出口逼近 样例: example: 求5的阶乘。。 例如以下: Jav.....
分类:编程语言   时间:2015-04-30 10:13:48    阅读次数:137
Ruby-递归和尾递归
递归和迭代的区别 递归: 1)递归就是在过程或函数里面调用自身; 2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口. 迭代: 利用变量的原值推算出变量的一个新值.如果递归是自己调用自己的话,迭代就是A不停的调用B. 1、斐波那契 1 1 2 3 5 8 递归算法 def fibo1(n)...
分类:其他好文   时间:2015-04-29 21:25:16    阅读次数:169
1027条   上一页 1 ... 75 76 77 78 79 ... 103 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!