寫在前面
|
筆者一開始在學演算法的時候經常把演算法和編程語言誤認為是一個東西,實際上演算法更多的是一種思想,只是我們用編程語言去實作它 筆者大學學的是Java,所以更習慣用Java去實作,其實演算法這個東西,用C,python,Java,JavaScript都可以實作 通俗地說解決某種問題的方法都叫演算法,但是筆者在攻演算法題的時候經常各種苦手實作不了 其實是因為筆者之前沒有寫偽代碼的習慣,導致了原來兩步走的路合并成一步走 那步子太大了肯定容易拉胯,偽代碼實際上就是生活語言和計算機語言的橋梁 掌握了偽代碼的技能,做演算法題就會方便很多 因此筆者的建議是將偽代碼的學習放在演算法學習的第一課 |
基本內容
偽代碼是用介于自然語言和計算機語言之間的文字和符號來描述演算法,每一行(或幾行)表示一個基本操作,它不用圖形符號,因此書寫方便、格式緊湊,也比較好懂,便于向程式過渡,
偽代碼的7個主要部分:
(1)演算法名稱
(2)指令序列
(3)輸入/輸出
(4)分支選擇
(5)賦值
(6)回圈
(7)演算法結束
演算法名稱
兩種表示演算法的偽代碼:
程序(Procedure)
函式(Function)
程序和函式的區別是:
程序是執行一系列的操作,不需要回傳操作的結果,無回傳資料;
函式是執行一系列的操作后,要將操作的結果回傳,有回傳資料,
演算法偽代碼的書寫規則:
Procedure <演算法名> ([<引數串列>])
Function <演算法名> ([<引數串列>])
如: Procedure Hanoi_ Tower(
Function Fac(x) 表示名為Fac的一一個函式,
Function Prog(n)表示 名為Prog的一一個函式,
指令序列
指令序列是演算法的主體,
指令序列的書寫規則:
用Begin作為開始、用End作為結束;
用“{”作為開始、用“/}” 作為結束,
例如:
Begin
指令序列;
End
或者:
{
指令序列; .
/}
輸出/輸出
輸入: Input
輸出: Output 或Returm
分支選擇
兩種分支:
If<條件> Then
指令序列
/}
If <條件>Then
指令序列1
/}
else
指令序列2
/}
賦值
用:=或者←作為賦值運算子,表示將賦值號右邊的值賦值給左邊的變數,
例如: x:=x+1
或:
y←x*x
回圈
兩種方式:計數式回圈和條件式回圈,
(1)計數式回圈
For變數:=初值To終值
指令
/}
回圈次數: (終值-初值+1)
(2)條件式回圈
While (條件) do
指令
條件為真,則回圈執行指令,直到條件為假,
演算法結束
關鍵字End的后面加,上演算法名稱,表示演算法結束,是演算法的最后- -句,
例如:
End Hanoi _Tower
End Fac
分別表示演算法Hanoi Tower和Fac的結束,
總結
(1)賦值用箭頭“←”
(2)for i←0 to 10 //for、while、if 后面的條件陳述句都不用加括號
do XXXXX //for后面必定要緊跟縮進的do
XXXXX
(3)while time<10
do xxxxx //while后面必定要緊跟縮進的do
xxxxx
(4)if i=10
then xxxx
else xxxx //else 和 then 要在對齊
(5)if i=10
then xxxx //if 后面必定跟上then,else后面不用跟then
elseif i=9
then xxxx
yyyy
else xxxx //else 跟在elseif 的 then 對齊
(6)elseif 要合并,
(7)同一嵌套等級的陳述句要對齊,
(8)定義變數的陳述句不用寫出來,但必須在注釋中給出
(9)函式的偽代碼格式例子為:search(A,name) //引數型別可以不給出,但必須在注釋中說明
(10)寫完的偽代碼最后必須在每行偽代碼前加上序號
在黑夜里夢想著光,心中覆寫悲傷,在悲傷里忍受孤獨,空守一絲溫暖, 我的淚水是無底深海,對你的愛已無言,相信無盡的力量,那是真愛永在, 我的信仰是無底深海,澎湃著心中火焰,燃燒無盡的力量,那是忠誠永在轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/449776.html
標籤:其他
