遞迴簡單理解

2022-06-12 23:18:14 字數 1498 閱讀 9450

一、遞迴的概念

個人理解遞迴就是方法自己呼叫自己,每次呼叫傳入不同的變數,遞迴有助於解決複雜的問題,同時可以讓**變得更簡潔

二、遞迴的規則

例項:迷宮問題:找出小球從左上角到右下角的路線(底層原理,用二位陣列)

思路分析:

三、**實現
package com.atguigu.recursion;

public class migong

// 左右全部置為1

for (int i = 0; i < 8; i++)

//設定擋板, 1 表示

map[3][1] = 1;

map[3][2] = 1;

// 輸出地圖

system.out.println("地圖的情況");

for (int i = 0; i < 8; i++)

system.out.println();

} //使用遞迴回溯給小球找路

setway(map, 1, 1);

//輸出新的地圖, 小球走過,並標識過的遞迴

system.out.println("小球走過,並標識過的 地圖的情況");

for (int i = 0; i < 8; i++)

system.out.println();

} }//使用遞迴回溯來給小球找路

//說明

//1. map 表示地圖

//2. i,j 表示從地圖的哪個位置開始出發 (1,1)

//3. 如果小球能到 map[6][5] 位置,則說明通路找到.

//4. 約定: 當map[i][j] 為 0 表示該點沒有走過 當為 1 表示牆 ; 2 表示通路可以走 ; 3 表示該點已經走過,但是走不通

//5. 在走迷宮時,需要確定乙個策略(方法) 下->右->上->左 , 如果該點走不通,再回溯

/***

* @param map 表示地圖

* @param i 從哪個位置開始找

* @param j

* @return 如果找到通路,就返回true, 否則返回false

*/public static boolean setway(int map, int i, int j) else else if (setway(map, i, j+1)) else if (setway(map, i-1, j)) else if (setway(map, i, j-1)) else

} else

} }}

簡單理解遞迴

遞迴 現在的一些高階語言具有著可以在函式內部呼叫函式自身的功能,在一些場合中可以完成簡化 實現!下面簡單的講一下自己對於遞迴的理解!遞迴的實現一般分為三個步驟 在 實現的時候一般需要按照這個步驟實現。明確遞迴函式的作用 遞迴的終止條件 找到關係式,讓其最終可以達到遞迴的終止條件!下面詳細講解一下需要...

對遞迴的簡單理解

今天一小夥伴寫了乙個遞迴,echo可以輸出要取的值,return的卻總是null,寫了乙個簡單的測試復原一下問題。function test i echo i return i a test 30 var dump a 結果如下 261014182226 int 26 思路看上去很簡單,i 3就遞迴...

遞迴演算法的簡單理解

遞迴演算法在我們的處理各種問題的時候大量的使用,是乙個可以將大型的問題簡單化的演算法 對遞迴的理解 遞迴在概念上籠統的來說就是自己呼叫自己的方法,就像是查字典一樣,一層一層的查,直到找到你想要的那個資料,然後再逐一的返回 遞迴的抽象化理解 其實遞迴可以理解為出棧入棧的形式,他執行第一步遞迴,就將函式...