欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java遞歸算法實(shí)例分析

 更新時(shí)間:2017年12月12日 09:02:06   作者:街燈下的小草  
這篇文章主要介紹了java遞歸算法實(shí)例分析,具有一定借鑒價(jià)值,需要的朋友可以參考下。

遞歸算法設(shè)計(jì)的基本思想是:

對于一個(gè)復(fù)雜的問題,把原問題分解為若干個(gè)相對簡單類同的子問題,繼續(xù)下去直到子問題簡單到能夠直接求解,也就是說到了遞推的出口,這樣原問題就有遞推得解。

在做遞歸算法的時(shí)候,一定要把握住出口,也就是做遞歸算法必須要有一個(gè)明確的遞歸結(jié)束條件。這一點(diǎn)是非常重要的。其實(shí)這個(gè)出口是非常好理解的,就是一個(gè)條件,當(dāng)滿足了這個(gè)條件的時(shí)候我們就不再遞歸了。

關(guān)鍵要抓住的是:

(1)遞歸出口

(2)地推逐步向出口逼近

遞歸就是方法自身調(diào)用自身的行為,注意要寫好遞歸頭,也就是什么時(shí)候退出遞歸,

避免出現(xiàn)死循環(huán)。

實(shí)例1,通過遞歸打印1~100

package com.lanhuigu.base;
public class CursionTest {
	private static int i = 0;
	/** 
   * 遞歸打印1到100 
   */
	public static void testCursion01() {
		i++;
		// 自增 
		if (i <= 100) {
			// 小于等于100時(shí)回調(diào),否則跳出回調(diào),避免死循環(huán) 
			System.out.println(i);
			testCursion01();
			// 回調(diào): 自身調(diào)用自身
		} else {
			System.out.println("Game Over!");
		}
	}
	public static void main(String[] args) {
		testCursion01();
		// 打印1~100
	}
}

實(shí)例2,通過遞歸計(jì)算某個(gè)數(shù)的階乘

package com.lanhuigu.base;
public class CursionTest {
	/** 
   * 遞歸計(jì)算某個(gè)數(shù)的階乘 
   */
	public static int testFactorial(int n) {
		if (n == 1) {
			return 1;
		} else {
			return n*testFactorial(n-1);
		}
	}
	public static void main(String[] args) {
		System.out.println(testFactorial(5));
		// 計(jì)算5的階乘
	}
}

關(guān)于遞歸計(jì)算階乘,遞歸內(nèi)存分析結(jié)構(gòu)圖:

先放長線,最后收線,然后把魚拉上岸。

總結(jié)

以上就是本文關(guān)于java遞歸算法實(shí)例分析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • SpringBoot啟動(dòng)自動(dòng)終止也不報(bào)錯(cuò)的原因及解決

    SpringBoot啟動(dòng)自動(dòng)終止也不報(bào)錯(cuò)的原因及解決

    這篇文章主要介紹了SpringBoot啟動(dòng)自動(dòng)終止也不報(bào)錯(cuò)的原因及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 解決spring boot環(huán)境切換失效的問題

    解決spring boot環(huán)境切換失效的問題

    這篇文章主要介紹了解決spring boot環(huán)境切換失效的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java微信server錄音下載到自己server

    java微信server錄音下載到自己server

    這篇文章主要為大家詳細(xì)介紹了java微信server錄音下載到自己server的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 詳解SpringMVC的攔截器參數(shù)及攔截器鏈配置

    詳解SpringMVC的攔截器參數(shù)及攔截器鏈配置

    攔截器(Interceptor)是一種動(dòng)態(tài)攔截方法調(diào)用的機(jī)制,在SpringMVC中動(dòng)態(tài)攔截控制器方法的執(zhí)行。本文將詳細(xì)講講SpringMVC中攔截器參數(shù)及攔截器鏈配置,感興趣的可以嘗試一下
    2022-07-07
  • Java通過動(dòng)態(tài)規(guī)劃設(shè)計(jì)股票買賣最佳時(shí)機(jī)

    Java通過動(dòng)態(tài)規(guī)劃設(shè)計(jì)股票買賣最佳時(shí)機(jī)

    動(dòng)態(tài)規(guī)劃可謂是大名鼎鼎,筆試面試中的高頻考點(diǎn),也是重點(diǎn)難點(diǎn),動(dòng)態(tài)規(guī)劃類型題目靈活多變,難度系數(shù)也相對較高,往往我們做不好動(dòng)態(tài)規(guī)劃的題目就會(huì)與心儀的offer失之交臂,本篇文章我們就一起來研究一下動(dòng)態(tài)規(guī)劃設(shè)計(jì)股票買賣最佳時(shí)機(jī)
    2022-10-10
  • java 中ThreadLocal本地線程和同步機(jī)制的比較

    java 中ThreadLocal本地線程和同步機(jī)制的比較

    這篇文章主要介紹了java 中ThreadLocal本地線程和同步機(jī)制的比較的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Java?RabbitMQ的持久化和發(fā)布確認(rèn)詳解

    Java?RabbitMQ的持久化和發(fā)布確認(rèn)詳解

    這篇文章主要為大家詳細(xì)介紹了RabbitMQ的持久化和發(fā)布確認(rèn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • SpringBoot 實(shí)戰(zhàn) 之 優(yōu)雅終止服務(wù)的方法

    SpringBoot 實(shí)戰(zhàn) 之 優(yōu)雅終止服務(wù)的方法

    本篇文章主要介紹了SpringBoot 實(shí)戰(zhàn) 之 優(yōu)雅終止服務(wù)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Java創(chuàng)建多線程的幾種方式實(shí)現(xiàn)

    Java創(chuàng)建多線程的幾種方式實(shí)現(xiàn)

    這篇文章主要介紹了Java創(chuàng)建多線程的幾種方式實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 最新版Spring Security中的路徑匹配方案

    最新版Spring Security中的路徑匹配方案

    在 Spring Security 中,路徑匹配是權(quán)限控制的核心部分,它決定了哪些請求可以訪問特定的資源,本文將詳細(xì)介紹 Spring Security 中的路徑匹配策略,并提供相應(yīng)的代碼示例,需要的朋友可以參考下
    2024-04-04

最新評論