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

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

算法

2019-11-17 05:20:48
字體:
來源:轉載
供稿:網友

  什么是程序?程序= 數據結構+ 算法。對于面向對象程序設計,強調的是數據結構,而對于面向過程的程序設計語言如C、P a s c a l、F O RT R A N等語言,主要關注的是算法。把握算法,也是為面向對象程序設計打下一個扎實的基礎。那么,什么是算法呢?人們使用計算機,就是要利用計算機處理各種不同的問題,而要做到這一點,人們就必須事先對各類問題進行分析,確定解決問題的具體方法和步驟,再編制好一組讓計算機執行的指令即程序,交給計算機,讓計算機按人們指定的步驟有效地工作。這些具體的方法和步驟,其實就是解決一個問題的算法。根據算法,依據某種規則編寫計算機執行的命令序列,就是編制程序,而書寫時所應遵守的規則,即為某種語言的語法。由此可見,程序設計的要害之一,是解題的方法與步驟,是算法。學習高級語言的重點,就是把握分析問題、解決問題的方法,就是鍛煉分析、分解,最終歸納整理出算法的能力。與之相對應,具體語言,如C語言的語法是工具,是算法的一個具體實現。所以在高級語言的學習中,一方面應熟練把握該語言的語法,因為它是算法實現的基礎,另一方面必須熟悉到算法的重要性,加強思維練習,以寫出高質量的程序。下面通過例子來介紹如何設計一個算法:[例1-4] 輸入三個數,然后輸出其中最大的數。首先,得先有個地方裝這三個數,我們定義三個變量A、B、C,將三個數依次輸入到A、B、C中,另外,再預備一個M A X裝最大數。由于計算機一次只能比較兩個數,我們首先把A與B比,大的數放入M A X中,再把M A X 與C比,又把大的數放入M A X中。最后,把M A X輸出,此時M A X中裝的就是A、B、C三數中最大的一個數。算法可以表示如下:1) 輸入A、B、C。2) A與B中大的一個放入M A X中。3) 把C與M A X中大的一個放入M A X中。4) 輸出M A X,M A X即為最大數。其中的2 )、3 )兩步仍不明確,無法直接轉化為程序語句,可以繼續細化:2) 把A與B中大的一個放入M A X中,若A > B,則MAX ←A;否則MAX ←B。3) 把C與M A X中大的一個放入M A X中,若C > M A X,則M A X←C。于是算法最后可以寫成:1) 輸入A,B,C。2) 若A > B,則MAX ←A;否則M A X←B。3) 若C > M A X,則M A X←C。4) 輸出M A X,M A X即為最大數。
這樣的算法已經可以很方便地轉化為相應的程序語句了。[例1-5] 猴子吃桃問題:有一堆桃子不知數目,猴子第一天吃掉一半,覺得不過癮,又多吃了一只,第二天照此辦理,吃掉剩下桃子的一半另加一個,天天如此,到第十天早上,猴子發現只剩一只桃子了,問這堆桃子原來有多少個?此題粗看起來有些無從著手的感覺,那么怎樣開始呢?假設第一天開始時有a1只桃子,第二天有a2只,. . .,第9天有a9只,第1 0天是a1 0只,在a1, a2, . . .,a1 0中,只有a1 0= 1是知道的,現要求a1,而我們可以看出,a1, a2, . .,a1 0之間存在一個簡單的關系:a9= 2 * ( a1 0+ 1 ) a8= 2 * ( a9+ 1 ) ┇ a1= 2 * ( a2+ 1 ) 也就是:ai= 2 * ( ai + 1+1) i=9,8,7,6,...,1 這就是此題的數學模型。再考察上面從a9,a8直至a1的計算過程,這其實是一個遞推過程,這種遞推的方法在計算機解題中經常用到。另一方面,這九步運算從形式上完全一樣,不同的只是ai的下標而已。由此,我們引入循環的處理方法,并統一用a0表示前一天的桃子數,a1表示后一天的桃子數,將算法改寫如下:1) a1=1; {第1 0天的桃子數,a1的初值}i = 9。{計數器初值為9}2) a0= 2 * ( a1+ 1 )。{計算當天的桃子數}3) a1= a0。{將當天的桃子數作為下一次計算的初值}4) i=i-1。5) 若i > = 1,轉2 )。6) 輸出a0的值。其中2 )~5 )步為循環。 這就是一個從具體到抽象的過程,具體方法是:1) 弄清假如由人來做,應該采取哪些步驟。2) 對這些步驟進行歸納整理,抽象出數學模型。3) 對其中的重復步驟,通過使用相同變量等方式求得形式的統一,然后簡練地用循環解決。算法的描述方法有自然語言描述、偽代碼、流程圖、N - S圖、PA D 圖等。1.4.1 流程圖與算法的結構化描述1. 流程圖流程圖是一種傳統的算法表示法,它利用幾何圖形的框來代表各種不同性質的操作,用流程線來指示算法的執行方向。由于它簡單直觀,所以應用廣泛,非凡是在早期語言階段,只有通過流程圖才能簡明地表述算法,流程圖成為程序員們交流的重要手段,直到結構化的程序設計語言出現,對流程圖的依靠才有所降低。下面介紹常見的流程圖符號及流程圖的例子。
本章例1 - 1的算法的流程圖如圖1 - 2所示。本章例1 - 2的算法的流程圖如圖1 - 3所示。在流程圖中,判定框左邊的流程線表示判定條件為真時的流程,右邊的流程線表示條件為假時的流程,有時就在其左、右流程線的上方分別標注“真”、“假”或“T”、“F”或“Y”、“N”。算法(圖一)
算法(圖二)
另外還規定,流程線是從下往上或從右向左時,必須帶箭頭,除此以外,都不畫箭頭,流程線的走向總是從上向下或從左向右。
2. 算法的結構化描述早期的非結構化語言中都有g o t o語句,它答應程序從一個地方直接跳轉到另一個地方去。執行這樣做的好處是程序設計十分方便靈活,減少了人工復雜度,但其缺點也是十分突出的,一大堆跳轉語句使得程序的流程十分復雜紊亂,難以看懂也難以驗證程序的正確性,假如有錯,排起錯來更是十分困難。這種轉來轉去的流程圖所表達的混亂與復雜,正是軟件危機中程序人員處境的一個生動寫照。而結構化程序設計,就是要把這團亂麻理清。經過研究,人們發現,任何復雜的算法,都可以由順序結構、選擇(分支)結構和循環結構這三種基本結構組成,因此,我們構造一個算法的時候,也僅以這三種基本結構作為“建筑單元”,遵守三種基本結構的規范,基本結構之間可以并列、可以相互包含,但不答應交叉,不答應從一個結構直接轉到另一個結構的內部去。正因為整個算法都是由三種基本結構組成的,就像用模塊構建的一樣,所以結構清楚,易于正確性驗證,易于糾錯,這種方法,就是結構化方法。遵循這種方法的程序設計,就是結構化程序設計。相應地,只要規定好三種基本結構的流程圖的畫法,就可以畫出任何算法的流程圖。(1) 順序結構順序結構是簡單的線性結構,各框按順序執行。其流程圖的基本形態如圖1 - 4所示,語句的執行順序為:A→B→C。(2) 選擇(分支)結構這種結構是對某個給定條件進行判定,條件為真或假時分別執行不同的框的內容。其基本外形有兩種,如圖1-5 a)、b)所示。圖1-5 a)的執行序列為:當條件為真時執行A,否則執行B;圖1 - 5 b)的執行序列為:當條件為真時執行A,否則什么也不做。
算法(圖三) 1 、(3) 循環結構循環結構有兩種基本形態:w h i l e型循環和d o - w h i l e型循環。
2、a. while 型循環如圖1 - 6所示。其執行序列為:當條件為真時,反復執行A,一旦條件為假,跳出循環,執行循環緊后的 語句。 三層交換技術 交換機與路由器密碼恢復 交換機的選購 路由器設置專題 路由故障處理手冊 數字化校園網解決方案  b. do-while型循環如圖1 - 7所示。算法(圖四) 執行序列為:首先執行A,再判定條件,條件為真時,一直循環執行A,一旦條件為假,結束循環,執行循環緊后的下一條語句。在圖1 - 6、圖1 - 7中,A被稱為循環體,條件被稱為循環控制條件。要注重的是:1) 在循環體中,必然對條件要判定的值進行修改,使得經過有限次循環后,循環一定能結束,如圖1 - 3中的i = i - 1。2) 當型循環中循環體可能一次都不執行,而直到型循環則至少執行一次循環體。3) 直到型循環可以很方便地轉化為當型循環,而當型循環不一定能轉化為直到型循環。例如,圖1 - 7可以轉化為圖1 - 8。2 用N-S圖描述算法N - S圖是另一種算法表示法,是由美國人I . N a s s i和B . S h n e i d e r m a n共同提出的,其根據是:既然任何算法都是由前面介紹的三種結構組成,所以各基本結構之間的流程線就是多余的,因此,N - S圖也是算法的一種結構化描述方法。N - S圖中,一個算法就是一個大矩形框,框內又包含若干基本的框,三種基本結構的N - S 圖描述如下所示:1. 順序結構如圖1 - 9所示,執行順序先A后B。
2. 選擇結構
對應于圖1 - 5的N - S圖為圖1 - 1 0。圖1-10 a)條件為真時執行A,條件為假時執行B。圖1 - 1 0 b )條件為真時執行A,為假時什么都不做。算法(圖四)
3. 循環結構
1) while型循環的N - S圖如圖1 - 11所示,條件為真時一直循環執行循環體A,直到條件為假時才跳出循環。
2) do-while型循環的N - S圖如圖1 - 1 2,一直循環執行循環體A,直到條件為假時才跳出循環。
本章例1 - 1的N - S圖如圖1 - 1 3,例1 - 2的N - S圖如圖1 - 1 4。應該說,N - S圖比流程圖更直觀易懂,而且相對簡練一些。 算法(圖五) 算法(圖六)
算法(圖七)
3 用PAD圖描述算法
PA D(PRoblem Analysis Diagram),是近年來在軟件開發中被廣泛使用的一種算法的圖形表示法,與前述的流程圖、N - S圖相比,流程圖、N - S圖都是自上而下的順序描述,而PA D圖除了自上而下以外,還有自左向右的展開,所以,假如說流程圖、N - S圖是一維的算法描述的話,則PA D圖就是二維的,它能展現算法的層次結構,更直觀易懂。
下面是PA D圖的幾種基本形態:
1. 順序結構:
如圖1 - 1 5所示。
2. 選擇結構
(1) 單分支選擇,條件為真執行A,如圖1-16 a)。
(2) 兩分支選擇,如圖1-16 b),條件為真執行A,為假執行B。
(3) 多分支選擇,如圖1-16 c),當I = I1時執行A,I= I2時執行B,I = I3時執行C,I = I4時執行D。
算法(圖八)
3. 循環結構
如圖1 - 1 7所示。圖1-17 a)為w h i l e型循環,圖1-17 b)為d o - w h i l e型循環。
算法(圖九)
本章例1 . 1的PA D圖如圖1 - 1 8,例1 - 2的PA D圖如圖1 - 1 9。
算法(圖十)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久99精品久久久久| 欧美精品999| 日本精品久久中文字幕佐佐木| 精品久久久香蕉免费精品视频| 亚洲女成人图区| 久久免费视频网站| 色午夜这里只有精品| 欧美性xxxxxxxxx| 国内精品400部情侣激情| 亚洲一区美女视频在线观看免费| 欧美日韩国产精品一区| 欧美激情视频免费观看| 日韩av快播网址| 午夜精品一区二区三区在线视| 91爱爱小视频k| 永久免费精品影视网站| 亚洲国产欧美自拍| 欧美日韩激情网| 国产一区二区三区毛片| 欧美大荫蒂xxx| 中文字幕日韩欧美精品在线观看| 一本色道久久综合亚洲精品小说| 国产伦精品一区二区三区精品视频| 91国语精品自产拍在线观看性色| 国产精品白丝jk喷水视频一区| 亚洲国产日韩欧美综合久久| 18性欧美xxxⅹ性满足| 国产精品高潮呻吟视频| 日韩精品在线观看视频| 欧美精品制服第一页| 亚洲天堂av综合网| 日韩在线视频中文字幕| 欧美午夜精品久久久久久久| 国产精品直播网红| 91高潮精品免费porn| 亚洲自拍高清视频网站| 欧美电影免费看| 欧美激情亚洲一区| 国产精品永久免费| 欧美体内谢she精2性欧美| 日韩av高清不卡| 夜夜嗨av色综合久久久综合网| 中文一区二区视频| 欧美激情第一页xxx| 欧美日韩一区二区精品| 日韩视频永久免费观看| 久久亚洲国产精品| 青青a在线精品免费观看| 精品网站999www| 日韩精品极品视频免费观看| 3344国产精品免费看| 欧美日韩福利视频| 国产美女被下药99| 国产精品偷伦免费视频观看的| 性日韩欧美在线视频| 亚洲精品丝袜日韩| 97精品国产97久久久久久免费| 久久精品国产久精国产一老狼| 国产一区二区日韩精品欧美精品| 欧美二区在线播放| 亚洲国产女人aaa毛片在线| 91久久久久久久一区二区| 欧美成人精品激情在线观看| 中文字幕亚洲精品| 久久久久久亚洲精品不卡| 欧美一区二区大胆人体摄影专业网站| 国产成人激情小视频| 亚洲人成电影网站色xx| 91久久久亚洲精品| 日韩hd视频在线观看| 欧美日韩免费区域视频在线观看| 日韩视频永久免费观看| 欧美激情xxxx性bbbb| 亚洲高清av在线| 国内精品久久久久影院 日本资源| 欧美激情视频在线免费观看 欧美视频免费一| 国产v综合v亚洲欧美久久| 亚洲剧情一区二区| 亚洲精品成人久久| 岛国视频午夜一区免费在线观看| 成人av.网址在线网站| 久久久久久欧美| 欧美一区二粉嫩精品国产一线天| 亚洲日韩欧美视频一区| 日韩国产激情在线| 欧美电影在线播放| 高清视频欧美一级| 亚洲人高潮女人毛茸茸| 茄子视频成人在线| 欧美激情二区三区| 国产亚洲人成a一在线v站| 91精品国产免费久久久久久| 亚洲精品91美女久久久久久久| 国产精品稀缺呦系列在线| 久久久亚洲精品视频| 这里只有精品视频| 中文字幕日本欧美| 国产成人精品优优av| 亚洲欧美日韩精品久久亚洲区| 992tv在线成人免费观看| 欧美老女人xx| 国产亚洲精品久久久久动| 久久精品2019中文字幕| 91亚洲永久免费精品| 一区二区三区亚洲| 久久久久久久久久av| 97精品一区二区视频在线观看| 欧美在线一级va免费观看| 欧美亚洲另类制服自拍| 国产91精品高潮白浆喷水| 欧美国产日本高清在线| 国产精品jvid在线观看蜜臀| 亚洲经典中文字幕| 一本一本久久a久久精品综合小说| 日本aⅴ大伊香蕉精品视频| 国语自产在线不卡| 国产精品扒开腿做爽爽爽视频| 国产亚洲视频在线| 成人做爽爽免费视频| 久久视频在线免费观看| 欧美伦理91i| 91av网站在线播放| 欧美风情在线观看| 国产精品久久久av| 日韩精品一区二区三区第95| 国产精品国产福利国产秒拍| 久精品免费视频| 日本成人黄色片| 久久精品中文字幕| 国内免费精品永久在线视频| 亚洲伊人成综合成人网| 成人午夜两性视频| 欧美二区在线播放| 国内精品久久久久久中文字幕| 欧美巨猛xxxx猛交黑人97人| 欧美乱大交xxxxx另类电影| 国产精品久久久久9999| 久久青草福利网站| 97精品视频在线播放| 国产亚洲一区二区精品| 亚洲第一区第二区| 午夜精品在线观看| 日本午夜在线亚洲.国产| 国产精品人成电影在线观看| 91久久久在线| 亚洲一区亚洲二区| 国产一区二区三区在线视频| 国产精品日韩精品| 国产精品热视频| 久久大大胆人体| 亚洲黄色有码视频| 欧美午夜激情在线| 中国china体内裑精亚洲片| 国产网站欧美日韩免费精品在线观看| 91高清视频免费| 中文字幕亚洲一区二区三区| 欧美日本啪啪无遮挡网站| 成人a级免费视频| 日韩一区视频在线| 国产三级精品网站| 2021久久精品国产99国产精品| 欧美激情欧美狂野欧美精品| 欧美小视频在线| 国产精品视频区1|