写在前面
笔者一开始在学算法的时候经常把算法和编程语言误认为是一个东西,实际上算法更多的是一种思想,只是我们用编程语言去实现它 笔者大学学的是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)写完的伪代码最后必须在每行伪代码前加上序号
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!