跳台阶问题题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解析这个问题归根结底还是一个费布拉奇数列,仔细找一下规律即可,刚开始做的时候我是直接写出前六个数的结果来找规律的。一级台阶:1种 fib(1)=1
二级台阶:2种 fib(2)=2
三级台阶:3种 fib(3)=fib(1)+fib(2)=3
四级台阶:5种 f...
分类:
编程语言 时间:
2015-07-30 02:09:59
阅读次数:
165
归并排序原理即将两个有序的数组合并成一个,归并排序有两种方法:递归和循环。
/*递归方法*/void Merge(int TR1[], int TR2[], int low, int mid, int high)
{//将TR2归并入TR1中
int pos1 = low;
int pos2 = mid + 1;
for (int i = low; i <= high; ++i)
...
分类:
编程语言 时间:
2015-06-29 20:35:46
阅读次数:
107
定义:程序调用自身的编程技巧称为递归( recursion)。
递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的魅力在于用有限的语句来定义对象的无限集合。...
分类:
编程语言 时间:
2015-06-11 09:31:48
阅读次数:
205
1 # Definition for a binary tree node. 2 # class TreeNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.left = None 6 # ...
分类:
其他好文 时间:
2015-05-08 18:07:55
阅读次数:
111
题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于
右子树的结点。用递归和循环两种方法完成树的镜像转换。
例如输入:
8
/ 6 10
/\ /5 7 9 11
输出:
8
/ 10 6
/\ /11 9 7 5
思路:这也是一个递归的题目,对于当前节点,如果不是NULL节点或者叶子节点,那么只需要交换左右子节点...
分类:
其他好文 时间:
2015-04-29 09:58:55
阅读次数:
112
一. 递归的慢究竟慢在哪
递归就是函数自己调用自己,函数每次调用的时候需要将以下内容存入递归栈:调用函数地址、形参、局部变量、返回值。所以如果递归调用了N次,那压栈操作要保存N
* 调用函数地址、N * 局部变量、N * 形参、N * 返回值。这势必是影响效率的。
二. 递归和循环的比较:
递归和循环是两种不同的解决问题的思路,我们不能片面的说循环的效率一定会比递归高,下面我们做...
分类:
其他好文 时间:
2015-04-15 09:37:41
阅读次数:
120
#if !defined(_SORT_INCLUDED_H)
#define _SORT_INCLUDED_H
#include
/*
分别使用递归和循环来实现快速排序,虽然已经写了4年多代码了
但是发现一次性写的完整无误还真是...呵呵
author:davidsu33
datetime:2015-3-1
*/
/*
快速排序,使用递归
*/
template
void swap_val...
分类:
编程语言 时间:
2015-03-01 17:08:22
阅读次数:
153
转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4260432.html声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,本文的思想也许有所借鉴,但源码均为本人实现,如有侵权,请发邮件表明文章和原出处...
分类:
其他好文 时间:
2015-01-29 19:23:47
阅读次数:
279
归并排序可以有两种思路----top-down 和 bottom-up
top-down:
递归实现,将数组分成两半,分别处理;再合并。
伪代码如下:
split ( A[], l, r)
{
if ( r - l < 2) return;
m = (r + l) / 2;
split ( A, l, m); //split A[l…m-1]
split ( A, m, r); /...
分类:
其他好文 时间:
2014-10-09 02:51:37
阅读次数:
222