我们在前面学习了数据结构的相关知识,现在我们学习一下关于算法的内容。在算法中我们有种思想很常见,就是递归。什么是递归呢?其实在我最初的印象里,就是自己去调用自己。这就有点寥寥草草了。乃我们现在去具体的学习一下什么是递归。
概念
递归:程序调用自身的编程技巧称为递归( recursion);
比如下面几行代码:
public static void show(){
show();
}
在show()方法里面再去调用show()方法。这就是应用了递归的思想。
它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
在栈的方向去解释一下递归
public static void main(String[] args) {
show();
}
public static void show() {
show();
}