java数据结构与算法6_Java数据结构与算法6——递归

1.什么是递归

什么是递归递归就是函数(方法)不断调用自身,直至求出结果的算法。

其思路是把一个大问题转化为规模缩小了的子问题,通过解决小问题来解决最终的大问题。

2.阶乘

3.理解递归:调用顺序、和循环的关系

1)递归的运行顺序

2)递归和循环,把前面用循环实现的二分法查找,用递归来实现

4.理解分治算法

基本思想是将一个大的问题分解为N个较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。

5.斐波那契数列

斐波那契数列,又称黄金分割数列,形如:0, 1, 1, 2, 3, 5, 8, 13......

1)第0项是0,第1项是第一个1

2)从第二项开始,每一项都等于前两项之和

6.汉诺塔(河内塔)问题

在ABC三根柱子上,有n个圆形盘以从下到上、从大到小的次序叠置在A塔上。现要将A塔上的所有圆形盘,借助B搭,全部移动到C塔上。且仍按照原来的次序叠置。移动的规则如下:

1)这些圆形盘只能在3个塔问进行移动

2)一次只能移动一个盘子

3)任何时候都不允许将较大的盘子压在比它小的盘子的上面

7.背包问题

背包问题背包问题是一种组合优化的问题,一种简化形式如下:给定一组物品,重量各不相同,如何从中选择物品放入背包中,以使背包重量达到指定的重量。

8.归并排序

归并排序思路:采用分治的思想,把数据序列分成两个子序列,排序每一半,然后再把排好序的两个子序列合并成为一个有序的序列。

归并排序的效率:归并排序的时间是O(N*logN),主要是复制和比较花费时间

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值