1.2 算法
學習計算機程序設計語言的目的,是要用語言作為工具,設計出可供計算機運行的程序。
在拿到一個需要求解的問題之后,怎樣才能編寫出程序呢?除了選定合理的數(shù)據(jù)結構外,一般來說,十分關鍵的一步是設計算法,有了一個好的算法,就可以用任何一種計算機高級語言把算法轉換為程序(編寫程序)。
算法是指為解決某個特定問題而采取的確定且有限的步驟。一個算法應當具有以下五個特性:
1.有窮性。一個算法包含的操作步驟應該是有限的。也就是說,在執(zhí)行若干個操作步驟之后,算法將結束,而且每一步都在合理的時間內完成。
2.確定性。算法中每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必能得出相同的執(zhí)行結果。
3.可行性。算法中指定的操作,都可以通過已經驗證過可以實現(xiàn)的基本運算執(zhí)行有限次后實現(xiàn)。
4.有零個或多個輸入。在計算機上實現(xiàn)的算法是用來處理數(shù)據(jù)對象的,在大多數(shù)情況下這些數(shù)據(jù)對象需要通過輸入來得到。
5.有一個或多個輸出。算法的目的是為了求“解”,這些“解”只有通過輸出才能得到。
算法可以用各種描述方法來進行描述,最常用的是偽代碼和流程圖。
偽代碼是一種近似于高級語言但又不受語法約束的一種語言描述方式。這在英語國家中使用起來更為方便。
流程圖也是描述算法的很好的工具,一般的流程圖由圖1.2中所示的幾種基本圖形組成。
由這些基本圖形中的框和流程線組成的流程圖來表示算法,形象直觀,簡單方便。但是,這種流程圖對于流程線的走向沒有任何限制,可以任意轉向,在描述復雜的算法時所占篇幅較多,費時費力且不易閱讀。
隨著結構化程序設計方法的出現(xiàn),1973年美國學者I.Nassi和B.Shneiderman提出了一種新的流程圖形式,這種流程圖表余去掉了流程線,算法的每一步都用一個矩形框來描述,把一個個矩形框按執(zhí)行的次序連接起來就是一個完整的算法。這種流程圖界兩位學者名字的第一個英文字母命名,稱為N-S流程圖。在下一節(jié)中將結合結構化程序設計中的三種基本結構來介紹這種流程圖的基本結構。
編輯推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |