一个方法体内调用它自身,就称为递归方法。方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。 要使用递归,必须要有两个条件: 1. 递归终止条件,不然会陷入死循环 2. 递归表达式,即找出规律 下面,给出几道关于递归的算法题,来领悟递归的神奇。 1.求1~n的阶乘 一般思 ...
分类:
其他好文 时间:
2019-07-30 00:20:23
阅读次数:
119
1 递归函数 函数在调用阶段,直接或间接的调用了自身 递归函数不应该一直递归下去,我们不考虑它到底循环多少次,我们只考虑它的结束条件 递归函数分为两个阶段 1 回溯;就是一次次重复的过程,这个重复的过程,每一次都应该比上一次简单 2 地推;一次次往回推导的过程 2 二分法 可以在一个有序的序列,快速 ...
分类:
其他好文 时间:
2019-07-13 21:30:53
阅读次数:
134
Invert a binary tree. Example: Input: Output: 方法2:递归求解,简洁的让人觉得可怕,跑的还飞快,推荐食用👍 ...
分类:
其他好文 时间:
2019-07-10 00:59:52
阅读次数:
137
方法: 递归,其实就是比较节点值和 不断减小的sum值 是否相同 注意:递归的其实本质上来说就是给一个最基本的情况,然后让所有情况向这个基本情况靠拢,中间不要考虑那么多。 ...
分类:
其他好文 时间:
2019-06-23 15:41:12
阅读次数:
87
算法 排序算法 稳定排序 待排序序列中相等元素在排序完成后,原有先后顺序不变。 非稳定排序 有序度 待排序序列中有序关系的元素对个数。 逆序度 1. 插入排序 遍历有序数组,对比待插入的元素大小,找到位置。把该位置后的元素依次后移。 时间复杂度: O(N2) 2. 选择排序 区分已排序区间和未排序区 ...
分类:
编程语言 时间:
2019-06-17 01:16:56
阅读次数:
115
递归算法解析 冒泡排序解析 装饰器解析 一. 递归 1. 递归的定义 递归(Recursion),又成为递回,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较长用于描述以自相似方法重复事物的过程。 2. 递归的原理 (1). 例题: 以下这幅图为整个函数的执行过程,红色的代表 ...
分类:
其他好文 时间:
2019-06-05 20:06:16
阅读次数:
90
1.Algorithm https://leetcode-cn.com/problems/merge-two-sorted-lists/ 方法 1:递归 想法 我们可以如下递归地定义在两个链表里的 merge 操作(忽略边界情况,比如空链表等): \left\{ \begin{array}{ll} ...
分类:
其他好文 时间:
2019-05-26 19:52:25
阅读次数:
150
为什么使用反射;reflect.Type和reflect.Value:Kind方法;递归的值显示器:分析各类型分支,使用示例,循环引用;编码 S表达式:编码方式,编码器实现
分类:
其他好文 时间:
2019-05-21 22:58:20
阅读次数:
237
递归:在一个方法体内,调用自身,一般要有出口。 实例:已知一个数列,f(0)=1,f(1)=4,f(n+2)=2*f(n+1)+f(n),其中n为大于等于0的整数,求f(10)的值。 ...
分类:
其他好文 时间:
2019-05-12 15:52:56
阅读次数:
138
1、基本思想 快速排序有很多种编写方法,递归和分递归,分而治之法属于非递归,比递归简单多了。在这不使用代码演示。下面我们来探讨一下快速排序的递归写法思想吧。 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它左边,所有比 ...
分类:
编程语言 时间:
2019-05-10 12:46:08
阅读次数:
153