
- Java 資料結構與演算法教程
- Java 中的 DSA - 首頁
- Java 中的 DSA - 概述
- Java 中的 DSA - 環境設定
- Java 中的 DSA - 演算法
- Java 中的 DSA - 資料結構
- Java 中的 DSA - 陣列
- Java 中的 DSA - 連結串列
- Java 中的 DSA - 雙向連結串列
- Java 中的 DSA - 迴圈連結串列
- Java 中的 DSA - 棧
- DSA - 表示式解析
- Java 中的 DSA - 佇列
- Java 中的 DSA - 優先佇列
- Java 中的 DSA - 樹
- Java 中的 DSA - 雜湊表
- Java 中的 DSA - 堆
- Java 中的 DSA - 圖
- Java 中的 DSA - 搜尋技術
- Java 中的 DSA - 排序技術
- Java 中的 DSA - 遞迴
- Java 中的 DSA 有用資源
- Java 中的 DSA - 快速指南
- Java 中的 DSA - 有用資源
- Java 中的 DSA - 討論
Java 中的 DSA - 遞迴
概述
遞迴指的是程式語言中的一種技術,其中一個函式呼叫自身。呼叫自身的函式稱為遞迴方法。
特點
一個遞迴函式必須具備以下兩個特徵
基本情況
一系列規則,透過減少情況最終導致基本情況。
遞迴階乘
階乘是遞迴的經典示例之一。階乘是一個非負數,滿足以下條件。
0! = 1
1! = 1
n! = n * n-1!
階乘用“!”表示。這裡規則 1 和規則 2 是基本情況,規則 3 是階乘規則。
例如,3! = 3 x 2 x 1 = 6
private int factorial(int n){ //base case if(n == 0){ return 1; }else{ return n * factorial(n-1); } }
遞迴斐波那契數列
斐波那契數列是遞迴的另一個經典示例。斐波那契數列是一系列整數,滿足以下條件。
F0 = 0
F1 = 1
Fn = Fn-1 + Fn-2
斐波那契用“F”表示。這裡規則 1 和規則 2 是基本情況,規則 3 是斐波那契規則。
例如,F5 = 0 1 1 2 3
演示程式
RecursionDemo.java
package com.tutorialspoint.algorithm; public class RecursionDemo { public static void main(String[] args){ RecursionDemo recursionDemo = new RecursionDemo(); int n = 5; System.out.println("Factorial of " + n + ": " + recursionDemo.factorial(n)); System.out.print("Fibbonacci of " + n + ": "); for(int i=0;i<n;i++){ System.out.print(recursionDemo.fibbonacci(i) +" "); } } private int factorial(int n){ //base case if(n == 0){ return 1; }else{ return n * factorial(n-1); } } private int fibbonacci(int n){ if(n ==0){ return 0; } else if(n==1){ return 1; } else { return (fibbonacci(n-1) + fibbonacci(n-2)); } } }
如果我們編譯並執行上述程式,則它將產生以下結果:
Factorial of 5: 120 Fibbonacci of 5: 0 1 1 2 3
廣告