亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java過程——嵌套與迭代

2019-11-14 23:52:18
字體:
來源:轉載
供稿:網友
java過程——嵌套與迭代

迭代與嵌套是面向過程的兩個非常有用的算法,在一些java開發中也應用的比較多。今天學習了一些皮毛,將其總結如下。

1線型的遞歸和迭代:

線型過程結構比較簡單,比較容易理解,并且從描述到代碼的書寫比較容易實現。最常見的是計算階乘:

image

1.1、用迭代的想法是,從1開始計算,每次乘上新的i,新計算的結果代替舊的結果:n->n*i;

int n=1;for(int i=1;i<n;i++){n=n*i;}

1.2、用嵌套的想法是,f(n)=nf(n-1),當n等于1時返回1;于是

PRivate static int factorial(int n){if(n==1)return 1;elsereturn n*factorial(n-1);}

1.3、迭代的過程比較簡單,不想多說,在寫程序時,可以寫成迭代的盡量使用迭代,嵌套相對而言更消耗計算資源。

這里要簡單的說一下迭代的整個計算過程。編寫嵌套算法,最重要有兩點:程序的出口和程序過程。例如

程序的出口是指,程序最末端程序應該返回的值,例如在1.2中的if(n==1) return 1;就是程序的末端。

有了程序的末端,就要去設計程序的過程,嵌套的過程并不容易書寫,很容犯錯。比如有這樣兩個方法,很類似,得出的結果相差卻很大:

private static void show1(int i) {        // TODO 自動生成的方法存根        if (i < 6)            t(i + 1);        else            System.out.print(i + " ");    }
private static void show2(int i) {        // TODO 自動生成的方法存根        if (i < 6)            t(i + 1)        
       System.out.print(i + " ");    }

同樣給i初值是1時,show1打印的是6,show2打印的 是6 5 4 3 2 1。

分析一下這兩個程序,show1(1),返回show1(2)。。。最后,當show1(6)時,程序結束,打印6。而show2(1)就不一樣了,show2(1)的出口也是6,但是,在執行show1(1)時,程序有一部分(system.out.print(…))沒有執行,因為程序進入了下一個嵌套show2(2),稱沒有執行的語句被暫時掛起。這樣每個循環都被掛起一段代碼,直到show2(6)時,程序找到出口,開始往回執行嵌套過程。先打印6 之后5 再4 。。。注意打印不是先1 再2 再3 。。。

由此也可見,在嵌套中出口對于程序是很重要的。

嵌套的計算機算法可以理解為,先掛起執行代碼直到找到出口,從出口開始執行代碼。

還有一個經典的例子是求最大公約數的問題,這里就不多說過程了,將前人的算法留下。數學過程是,(a,b)的最大公約數,與(b,a%b)的最大公約數相等,算法因歐幾里德而出名,命名為歐幾里德輾轉算法。代碼這里就不在給出了

當然線型過程都是可以優化的,在這里就不多說了。

如果說線型結構相對而言簡單一下,樹形結構要復雜很多,也更管用,可以解決許多日常世紀問題。

2、樹形遞歸

樹形算法要復雜很多,并且使用嵌套的方式更容易理解。

一個簡單的例子是斐波數:

image

最常用的數學描述f(n)=f(n-1)+f(n-2)。n=2時 1,n=1時 1。

使用迭代或者是遞歸的方法都很容易實現,這里就不在寫詳細的實現過程了。簡單的把嵌套的樹形圖畫一下:

image

樹形過程還是挺復雜的,上面只是一個最簡單的例子,下面舉一個很有意思的例子說明一下嵌套在解決復雜問題中比迭代更容易解決問題的例子:

有1個美國人,他有一枚祖傳的1美元(100美分)硬幣。有一天,他找到正在雜貨店的我,對我我“嗨,哥們,你那有零錢嗎”,“當然有”我回答道,“你要哪種,我這有50美分、25美分的、10美分的、5美分的和1美分的?!薄斑@么多啊”他詫異道,“我想把1美分換成零錢,你能告訴我一共多少中不同的方式嗎?”

當然對于這個刁難我的問題,我是不會回答他的,我立馬叫來隔壁正在忙著破解美國軍方網絡的jack,“Hi,jack,help me”我大聲叫道,jack卻在忙著他手頭的活,沉靜了半分種,他晃了晃腦袋,說了句“I know what you want to say,wait me one miniter”,果然,不到一分鐘,jack說了個數字292。當我還在霧里時,那位害我死了不少腦細胞的美國人大叫道:“不可思議,你是怎么做到的,我整整算了一周才把所有的情況排序出來”。聰明的你想到解決方案了嗎。

使用遞歸到并不是很難實現,稍微動些腦筋。

數學描述是這樣的:假設Fk(n)表述n美分兌換成k枚金幣的所有結果,那么Fk(n)可以遞歸的看成,沒有其中一種硬幣的結果,和除去一個其中一種硬幣的剩下錢的兌換結果,寫成:Fk(n)=Fk-1(n)+Fk(n-a).

比如上面的例子可以描述成,最終結果是由(100美分去除一個50美分)剩余的50美分兌換成5種硬幣的全部方法加上100美分兌換成4種硬幣的方法(沒有50美分的這種硬幣)。圖形可以更好的說明這一過程,聰明的你可以在紙上做一做圖形。

但是,我想提醒的是,想把這一數學過程寫成計算機代碼并不是一件容易的事情,這里我先不給出Java語言的代碼,你可以寫出來,我們一下討論一下。

當然這里有一個挑戰留給大家,包括我自己,就是怎樣把這個過程寫成其他的方式,大家都知道,遞歸法是很消耗資源的,如果你設計出了更好的算法,請與我分享,ahrty0814@Gmail.com

謝謝!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品pans私拍| 国产欧美日韩精品专区| 国产日产久久高清欧美一区| 午夜美女久久久久爽久久| 欧美国产第二页| 欧美日韩中文字幕在线视频| 伊人伊成久久人综合网小说| 久久久免费观看| 亚洲电影免费观看高清完整版在线观看| 深夜福利日韩在线看| 欧美老女人在线视频| 久久精品国产欧美亚洲人人爽| 久久精品成人一区二区三区| 国产精品嫩草影院一区二区| 欧美精品在线网站| 一区二区三区日韩在线| 26uuu亚洲国产精品| 国产一区二区三区在线播放免费观看| 欧美午夜视频一区二区| 日韩欧美成人免费视频| 国产精品伦子伦免费视频| 亚洲人午夜精品| 国产精品爽黄69| 亚洲欧洲免费视频| 国产91色在线播放| 色婷婷亚洲mv天堂mv在影片| 亚洲一区二区三区视频| 97精品国产97久久久久久春色| 国产精品国产自产拍高清av水多| 欧洲中文字幕国产精品| 久久精品国产成人精品| 最近2019中文字幕大全第二页| 久久视频在线直播| 国模私拍一区二区三区| 亚洲二区在线播放视频| 久久免费视频网站| 成人美女av在线直播| 欧美在线视频一区二区| 国产精品影院在线观看| 亚洲女人初尝黑人巨大| 5566成人精品视频免费| 欧美在线日韩在线| 亚洲免费精彩视频| 性欧美办公室18xxxxhd| 91精品国产综合久久香蕉的用户体验| 亚洲人成在线播放| 色偷偷偷综合中文字幕;dd| 国产欧美日韩中文| 日韩国产精品一区| 亚洲自拍偷拍福利| 国产丝袜一区视频在线观看| 亚洲bt天天射| 亚洲成人精品在线| 国产精品久久久久久久久久三级| 久久韩剧网电视剧| 日韩欧美高清在线视频| 欧美精品xxx| 国产精品91久久久久久| 一区二区三区视频在线| 国产主播在线一区| 91精品国产91| 久久精品国产亚洲7777| 91影院在线免费观看视频| 欧美激情国产精品| 成人h猎奇视频网站| 成人在线免费观看视视频| 国产成人福利网站| 久久天天躁狠狠躁夜夜躁2014| 成人做爰www免费看视频网站| 国产a∨精品一区二区三区不卡| 久久精品成人欧美大片| 亚洲xxxx视频| 欧美精品在线网站| 国产精品永久在线| 中文字幕欧美亚洲| 中文字幕国内精品| 日韩av三级在线观看| 亚洲老板91色精品久久| 亚洲一区精品电影| 亚洲一级片在线看| 伊人久久五月天| 欧美中文字幕视频| 色偷偷88888欧美精品久久久| 在线看片第一页欧美| 68精品久久久久久欧美| 91亚洲精品在线观看| 欧美日韩国产中字| 久久手机免费视频| 日本精品一区二区三区在线播放视频| 欧美中文字幕视频| 久久国产精品亚洲| 亚洲精品美女在线观看| 91亚洲国产成人久久精品网站| 国产精品 欧美在线| 最近2019年日本中文免费字幕| 欧美一级免费看| 国内精品在线一区| 免费99精品国产自在在线| 成人日韩av在线| 久久久精品在线| 亚洲欧洲第一视频| 欧美在线一区二区三区四| 成人在线小视频| 久久久天堂国产精品女人| 成人黄色影片在线| 欧美猛交免费看| 久久久久久午夜| 中文字幕在线看视频国产欧美在线看完整| 久久这里有精品| 亚洲一二在线观看| 欧美亚洲另类制服自拍| 欧美在线不卡区| 欧美激情精品久久久久久久变态| 国产欧美精品日韩| 亚洲欧洲在线看| 国产91在线播放九色快色| 亚洲精品91美女久久久久久久| 国产免费亚洲高清| 久久亚洲国产精品成人av秋霞| 4438全国亚洲精品在线观看视频| 亚洲高清在线观看| 欧美性videos高清精品| 久久久女女女女999久久| 亚洲精品日韩激情在线电影| 欧美巨乳美女视频| 国产91在线播放精品91| 国产美女扒开尿口久久久| 亚洲欧美福利视频| 亚洲网站视频福利| 在线观看国产欧美| 欧美日韩亚洲网| 亚洲精选一区二区| 国产日韩欧美电影在线观看| 国产成人精品亚洲精品| 97香蕉久久夜色精品国产| 久久久久久国产精品久久| 国产精品高精视频免费| 91免费综合在线| 国产精品最新在线观看| 国产女同一区二区| 国产91精品久久久| 色系列之999| 欧美日韩国产成人在线观看| 亚洲精品黄网在线观看| 中文字幕欧美专区| 91夜夜揉人人捏人人添红杏| 国产成人精品一区二区在线| 亚洲japanese制服美女| 国产精品观看在线亚洲人成网| 美女国内精品自产拍在线播放| 国产精品久久久久久久久久久久久久| 成人激情视频小说免费下载| 亚洲第一免费网站| 欧美电影《睫毛膏》| 国产香蕉一区二区三区在线视频| 国产成人avxxxxx在线看| 伊人成人开心激情综合网| 色偷偷91综合久久噜噜| 91国产视频在线播放| 欧美特黄级在线| 日韩欧美在线观看| 欧美日韩在线视频首页| 国外成人在线视频| 国产亚洲美女精品久久久|