零、小规范
- 不需要声明变量,变量名可以一定程度反映变量类型。
- 伪代码里没有 “{” “}” ,同一代码块用缩进表示。
- 数组用 数组名 + 表示,如BubbleSort( )
- 注释用双斜杠表示: //
- 赋值用箭头表示: ←
- 等于用一个等号表示: =
一、算法名称
Procedure <算法名>([<参数列表>]) //Produce对应的函数无返回数据
Function <算法名>([<参数列表>]) //Function对应的函数有返回数据
二、if-else语句
if 条件 then
else
示例:
if i=0 then
a[j]←0;
a[k]←0; //两行都是if语句的代码
else
if i>0 then //else if语句没必要转行
return 0;
else
return 1;
三、for语句
for 变量 ← 初值 to 终值 do
示例:
for i←0 to n-1 do
a[i] ← 0;
或者
for i←n to 0 do
a[i] ← 0;
四、while语句
while 条件 do
示例:
while i < n do
a[i] ← 0;
五、返回值
return 返回值
示例:
if n = 1
return 1;
else
return 0;
六、具体实例
1.冒泡排序
BubbleSort(A[0…n-1])
//该算法用冒泡排序对数组A[0…n-1]进行排序
//输入:一个可排序数组A[0…n-1]
//输出:非降序排列的数组A[0…n-1]
for i←0 to n-2 do
for j←0 to n-2-i do
if A[j+1]<A[j] then
swap A[j] and A[j+1]
2.合并数组
Merge(B[0…p-1],C[0…q-1],A[0…p+q-1])
//将两个有序数组合并为一个有序数组
//输入:两个有序数组B[0…p-1]和C[0…q-1]
//输出:A[0…p+q-1]中已经有序存放了B和C中的元素
i←0;j←0;k←0
while i<p and j<q do
if B[i]≤C[j] then
A[k]←B[i];i←i+1
else
A[k]←C[j];j←j+1
k←k+1
if i=p then
copy C[j…q-1] to A[k…p+q-1]
else
copy B[i…p-1] to A[k…p+q-1]