电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

瀏覽:94日期:2022-09-04 10:49:27

本文講述了Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解。分享給大家供大家參考,具體如下:

前言:在java遞歸基礎(chǔ)與遞歸的宏觀語意和java鏈表的天然遞歸結(jié)構(gòu)性質(zhì)中我們分別通過數(shù)組以及鏈表對遞歸進(jìn)行了應(yīng)用,那時我們只是對遞歸進(jìn)行了宏觀理解--遞歸是將問題化為更小問題的子過程。這一節(jié)我們對在4.1節(jié)中遞歸在數(shù)組中的應(yīng)用和4.2節(jié)中遞歸在鏈表中的應(yīng)用進(jìn)行微觀解讀:

一.關(guān)于4.1節(jié)中遞歸在數(shù)組中的應(yīng)用

1) 我們先來看看4.1節(jié)中的代碼實(shí)現(xiàn),如下圖:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

為了更好的進(jìn)行分析,我們將上述代碼的最后一句進(jìn)行拆分,拆分結(jié)果如下:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

此時 n=arr.length=2:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

2)現(xiàn)在我們對已經(jīng)拆分的代碼進(jìn)行分析為此來說明:遞歸函數(shù)的調(diào)用,本質(zhì)就是函數(shù)調(diào)用。

為了分析簡單,我們使用只有兩個元素的數(shù)組 arr=[6,10]

第一次調(diào)用:sum(arr,0)

使用sun(arr,0)進(jìn)行調(diào)用,進(jìn)入方法體之后,由于不滿足遞歸的基本條件,進(jìn)而繼續(xù)調(diào)用sum(arr,1)方法,如下:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

第二次調(diào)用:sum(arr,1)

使用sun(arr,1)進(jìn)行調(diào)用,進(jìn)入方法體之后,由于不滿足遞歸的基本條件,進(jìn)而繼續(xù)調(diào)用sum(arr,2)方法,此時調(diào)用過程如下:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

當(dāng)調(diào)用sum(arr,2)時,由于此時已經(jīng)滿足了遞歸的基本條件,結(jié)果直接返回0,回到上一次中斷的位置,也就是下圖中調(diào)用sum(arr,1) 方法中的sum(arr,l+1)處,如下圖:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

代碼從中斷處繼續(xù)向下執(zhí)行,返回arr[1]=10, x=0因此res=10,此時返回值為res=10;

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

此時代碼也將回到sum(arr,1)父親的調(diào)用中,也就是sum(arr,0)中。

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

代碼從中斷處繼續(xù)向下執(zhí)行,返回arr[0]=6, x=10因此res=16,此時返回值為res=16;

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

通過遞歸得到了我們最終的結(jié)果為16。

從上述的過程中印證了:遞歸函數(shù)的調(diào)用,本質(zhì)就是函數(shù)調(diào)用(自身函數(shù))---也就是使用不同的參數(shù),執(zhí)行相同的邏輯。

二、關(guān)于4.2節(jié)中遞歸在鏈表中的應(yīng)用(刪除鏈表中指定的所有元素值)

1)我們先來看看4.2節(jié)中的代碼實(shí)現(xiàn),如下圖:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

為了分析的方便,我們對方法體中的代碼做一個簡單的標(biāo)識1,2,3,結(jié)果如下圖:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

2)為了分析的簡便,我們來進(jìn)行模擬調(diào)用,對6--->7--->8--->null 刪除元素為7的節(jié)點(diǎn)。

注意:下面的分析中我們使用1,2,3這樣的編號,表示代碼執(zhí)行到的位置

第一次調(diào)用:

首先傳入頭結(jié)點(diǎn)為6的鏈表,由于不滿足遞歸的基本結(jié)束條件,再一次觸發(fā)第二次調(diào)用,此時鏈表變?yōu)轭^結(jié)點(diǎn)為7的鏈表:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

第二次調(diào)用:

此時鏈表的頭結(jié)點(diǎn)變?yōu)?,由于不滿足遞歸的基本結(jié)束條件,再一次觸發(fā)第三次調(diào)用,此時鏈表變?yōu)轭^結(jié)點(diǎn)為8的鏈表:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

第三次調(diào)用:

此時鏈表的頭結(jié)點(diǎn)變?yōu)?,由于不滿足遞歸的基本結(jié)束條件,再一次觸發(fā)第四次調(diào)用,此時鏈表變?yōu)榭真湵恚?/p>

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

第四次調(diào)用中,由于此時已經(jīng)滿足了遞歸的基本條件,回到上一次中斷的位置也就是2的位置,返回值為null,如下:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

此時的鏈表為頭結(jié)點(diǎn)為8的鏈表,如上圖黃色區(qū)域,執(zhí)行第三步代碼之后,返回的結(jié)果為為頭結(jié)點(diǎn)為8的鏈表,即為8-->null,并將該結(jié)果返回到上一步調(diào)用,也就是標(biāo)號為2的地方,得到結(jié)果為7-->8-->null的鏈表。

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

然后繼續(xù)執(zhí)行第三步,此時鏈表7-->8-->null滿足刪除條件,也就是head.val=val=7,將執(zhí)行head.next,返回最終結(jié)果為8-->null,如下:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

回到父級調(diào)用的中斷位置,得到的結(jié)果為6-->8--->null,然后執(zhí)行第三步代碼,判斷此時的鏈表的head.val是否等于val=7,此時的鏈表不滿足,直接返回head,也就是6--8-->null

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

到此遞歸調(diào)用得以結(jié)束,完成過程如下:

Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析

遞歸的調(diào)用是由代價的:函數(shù)調(diào)用(時間開銷)+系統(tǒng)??臻g,但是使用遞歸書寫邏輯是更為簡單的。

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設(shè)計有所幫助。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 顺辉瓷砖-大国品牌-中国顺辉| 10吨无线拉力计-2吨拉力计价格-上海佳宜电子科技有限公司 | 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 灌木树苗-绿化苗木-常绿乔木-价格/批发/基地 - 四川成都途美园林 | 油缸定制-液压油缸厂家-无锡大鸿液压气动成套有限公司 | 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | 税筹星_灵活用工平台_企业财务顾问_财税法薪综合服务平台 | 小型UV打印机-UV平板打印机-大型uv打印机-UV打印机源头厂家 |松普集团 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 广州展览设计公司_展台设计搭建_展位设计装修公司-众派展览装饰 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 兰州牛肉面加盟,兰州牛肉拉面加盟-京穆兰牛肉面| 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 贴片电感_贴片功率电感_贴片绕线电感_深圳市百斯特电子有限公司 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 噪声治理公司-噪音治理专业隔音降噪公司 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 亚克力制品定制,上海嘉定有机玻璃加工制作生产厂家—官网 | 搪瓷搅拌器,搪玻璃搅拌器,搪玻璃冷凝器_厂家-淄博越宏化工设备 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 航空连接器,航空插头,航空插座,航空接插件,航插_深圳鸿万科 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | 轴流风机-鼓风机-离心风机-散热风扇-罩极电机,生产厂家-首肯电子 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 电梯装饰-北京万达中意电梯装饰有限公司 | 偏心半球阀-电动偏心半球阀-调流调压阀-旋球阀-上欧阀门有限公司 | 卫生人才网-中国专业的医疗卫生医学人才网招聘网站! | 大巴租车平台承接包车,通勤班车,巴士租赁业务 - 鸿鸣巴士 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 陕西安玻璃自动感应门-自动重叠门-磁悬浮平开门厂家【捷申达门业】 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 首页|成都尚玖保洁_家政保洁_开荒保洁_成都保洁| 深圳律师咨询_深圳律师事务所_华荣【免费在线法律咨询】网 |