1、全排列的非去重递归算法
算法思路:全排列可以看做固定前i位,对第i+1位之后的再进行全排列,比如固定第一位,后面跟着n-1位的全排列。那么解决n-1位元素的全排列就能解决n位元素的全排列了,这样的设计很容易就能用递归实现。
附代码段:
void permutation1(char* str,int sbegin,int send) //全排列的非去重递归算法
{
if(...
分类:
编程语言 时间:
2015-08-08 16:36:09
阅读次数:
124
//递归算法 //0,1,1,2,3,5,8,13.... static int Recursion(int i) { if (i0 && i<=2) { re...
分类:
其他好文 时间:
2015-08-07 01:44:09
阅读次数:
94
【问题描述】
“背包题目”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,…,wn,希望从N件物品中选择若干物品,所选物品的重量之和恰能放进该背包,即所选物品的重量之和即是S。递归和非递归解法都能,试非递归算法求得“背包题目”的一组解
【算法分析】
1.此程序是得到问题的所有解;
2.本题只对背包有重量约束;
3...
分类:
其他好文 时间:
2015-08-02 16:51:00
阅读次数:
115
递归算法:方法自身再次调用自身的过程。如:1 、1 、2、3、5、8、13、21 34 55….从第二数开始,每位上的值是前两个数的和。求第10个数是多少递归算法:自己调用自己迭代算法:通过中间变量。不断交换获得值。public class Test{ public static void ma.....
分类:
其他好文 时间:
2015-08-01 06:18:06
阅读次数:
115
二叉树定义#include#include#define STACK_INIT_SIZE 30#define STACKINCREMENT 10#define OK 1#define ERROR -1typedef char TElemType;typedef struct BiTNode{ ...
分类:
编程语言 时间:
2015-08-01 01:01:35
阅读次数:
149
首先来递归算法,简单易懂:#include #include #include typedef struct TreeNode{ char data; struct TreeNode *lchild, *rchild;}TreeNode;void PreOrderTraverse(T...
分类:
编程语言 时间:
2015-07-31 17:40:37
阅读次数:
146
找到相同结点后,判断子树是否相同,判断子树是否相同时,采用了非递归算法(深度优先)
分类:
其他好文 时间:
2015-07-31 01:14:32
阅读次数:
164
斐波那契数列问题是算法学习者必然接触到的问题,作为经典问题,首次接触时一般是作为递归算法的案例教程。
然而递归解决斐波那契,其效率低的令人发指,有人算出其时间复杂度为O(2^n)。指数级时间复杂度。
如果面试的时候面试官问你斐波那契的求解方法,你来一个递归求解,基本上可以说,你已经game over了。
那么有没有更高效的算法呢,本文将一一介绍。
下面是斐波那契的4种解法:
1.递归...
分类:
编程语言 时间:
2015-07-27 18:56:21
阅读次数:
131
之前找了一个json-lib的bug,里面展示了一段遍历xml并将其转换为json的算法,今天就来说说这个算法,这个算法所用到的东西就是所谓的递归算法,虽然在程序中不建议用递归算法。 递归算法的特点: 1.递归就是在过程或函数里调用自身 2.在使用递归策略时,必须有一个明确的递归结束条件,...
分类:
编程语言 时间:
2015-07-27 18:22:58
阅读次数:
207
使用Scala完成归并排序,源代码来自Coursera 《Scala函数式编程原理》。并不局限于Scala语言,更多的想表达一种递归的思考方式。如果有更为合理的理解,请留言~...
分类:
编程语言 时间:
2015-07-26 22:47:47
阅读次数:
267