亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        遞歸算法分析一例

        2015-05-11 00:49:30姜秋明王妍婷
        關(guān)鍵詞:程序

        姜秋明,王妍婷

        (湖北工業(yè)職業(yè)技術(shù)學(xué)院公共課部,湖北十堰 442000)

        所謂遞歸就是過程(或函數(shù))的自調(diào)用,這種調(diào)用既可以是直接的,也可以是間接的[1]。

        遞歸對于某些問題,是一個十分有用的方法。它可以使某些看來不易解決的問題變得輕而易舉。但遞歸的運用有一定的技巧。我們在程序設(shè)計中不可簡單套用,否則會造成混亂或錯誤,且不易查出錯誤根源。筆者在這方面有過體會,下面以一個實際問題談?wù)勥f歸算法。

        問題表述:找出從入口經(jīng)過迷宮到出口的最短路徑。迷宮如圖示,畫斜線的位置不能通行,只能從一個空白位置走到一個與之相鄰的空白位置,但不能走重復(fù)路線。

        解決這一問題可用遞歸算法,用遞歸算法寫出的程序比較簡短明了。算法描述如下:

        1.用一個矩陣,即二維數(shù)組 maze[i,j]表示迷宮,當其值為“1”表示不通行,迷宮之外顯然也不可通行,可預(yù)先設(shè)為“1”。當值為“0”,表示可通行。

        2.用兩一維數(shù)組記錄可以通行路徑的方格坐標(即對應(yīng)二維數(shù)組下標)。

        3.建立一個包函遞歸算法的嘗試程序try(x,y,i:interger)。

        (1)占據(jù)入口,把入口二維數(shù)組的兩下標傳給兩一維數(shù)組。

        (2)向右、左、上、下嘗試,如果數(shù)組 maze[i,j]=0,則占據(jù)它作為一個新入口。

        (3)重復(fù)(1)、(2)直至到達出口。實際上這里就是遞歸調(diào)用。每調(diào)用一次就傳給兩一維數(shù)組一對坐標值,這樣當?shù)竭_出口時,我們就得到所過路徑的“坐標序列”。當然,這未必是最短路徑。

        4.用一個值stepnum記錄路徑長。當新生產(chǎn)的路徑比先產(chǎn)生的路徑短時就要更換它,否則棄之。這樣,當所有可能的路徑搜索完后,“坐標序列”記錄的就是最短路徑。

        下面給出用passcal語言寫的嘗試程序try(x,y,i:integer),并分析遞歸調(diào)用過程[2]。

        在程序中,我們了解到在到達出口之前,程序一直在執(zhí)行遞歸算法。遞歸調(diào)用被頻繁使用比我們想象的要多,因為在迷宮里有很多死胡同,它要進去退出來,再重新試探:還有當找到一條路徑后再回溯找其它的路徑。

        為了便于分析問題,我們把迷宮簡化為2×3的矩陣,如圖示。

        在這里程序度試探到出口后,又回溯到入口,并釋放所有被占據(jù)的點(入口由主程序釋放),在比較復(fù)雜的迷宮中,回溯時會拐到另一路徑上,然后再回溯,如此類推可以找到所有路徑[3]。

        通過對這個簡單情況的程序跟蹤,我們了解了遞歸調(diào)用的細節(jié),做到心中有數(shù),使我們在調(diào)試程序時不致因為遞歸是“暗箱”而不知如何修改參數(shù)或程序。在這個遞歸算法程序中,應(yīng)注意以下問題:

        (1)程序在調(diào)用自身或回溯時,變量i值的變化。內(nèi)層調(diào)用的變量i是不會傳給外層的,更不會通過外層傳給其他內(nèi)層調(diào)用程序。其他數(shù)據(jù)也是如此。

        (2)在get-path過程中,慎用變量i,以免引起混亂。i既是調(diào)用層次記錄,也是路徑長記錄,變化相當頻繁而復(fù)雜。

        (3)釋放被占據(jù)點的時機要恰當。如果提前釋放,會造成走重復(fù)路線,甚至死循環(huán)。如果滯后釋放或不釋放,可能會得不到路徑或得不到所需的最短路徑。

        遞歸算法還應(yīng)用于很多方面;它的優(yōu)勢之處是令人信服的。如果要用等價的程序?qū)⒑芊爆嵡也灰卓炊?。希望這一例遞歸算法分析能起到拋磚引玉的作用,使我們對它的運用更上一層次。

        [1]N·沃思.算法+數(shù)據(jù)結(jié)構(gòu)=程序[M].北京:科學(xué)出版社,1984:164.

        [2]李永新 .漢諾塔問題的非遞歸算法實現(xiàn)[J].湖州師范學(xué)院學(xué)報,2008(6):43-47.

        [3]孟 林,尹德輝.二叉樹遍歷遞歸算法非遞歸討論[J].福建電腦,2004(6):30-31.

        猜你喜歡
        程序
        給Windows添加程序快速切換欄
        電腦愛好者(2020年6期)2020-05-26 09:27:33
        試論我國未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        基于VMM的程序行為異常檢測
        偵查實驗批準程序初探
        我國刑事速裁程序的構(gòu)建
        創(chuàng)衛(wèi)暗訪程序有待改進
        恐怖犯罪刑事訴訟程序的完善
        亚洲精品久久一区二区三区777| 国产盗摄一区二区三区av| 久久久熟女一区二区三区| 伊人久久精品无码二区麻豆| 亚洲成av人片在线观看无码| 久久久国产精品福利免费| 色佬易精品视频免费在线观看| 亚洲视频一区二区三区视频| 亚洲а∨精品天堂在线| 国产又色又爽又刺激视频| 丰满人妻一区二区三区免费| 激情亚洲一区国产精品久久| 无码吃奶揉捏奶头高潮视频| 国产女人精品视频国产灰线| 亚洲精品在线观看自拍| 少妇高潮太爽了在线看| 日韩人妻无码一区二区三区| 欧美刺激午夜性久久久久久久| 亚洲发给我的在线视频| 亚洲国产精品久久艾草| 欧美成人精品一区二区综合| 大伊香蕉精品视频一区| 中文字幕一区二区黄色| 国产农村熟妇videos| 99热在线精品播放| 国产啪啪视频在线观看| 国产激情久久久久久熟女老人| 男女性高爱潮免费网站| 免费一级a毛片在线播出| 亚洲免费在线视频播放| 国产福利视频一区二区| 婷婷综合五月| 高清少妇一区二区三区| 搡女人真爽免费视频大全| 亚洲av无码男人的天堂在线| 亚洲AV无码成人精品区H| 户外精品一区二区三区| 丰满人妻被黑人猛烈进入| 精品人伦一区二区三区蜜桃麻豆| 国产爽快片一区二区三区| 真人做人试看60分钟免费视频|