伪代码怎么写

827 阅读2分钟

零、小规范

  1. 不需要声明变量,变量名可以一定程度反映变量类型。
  2. 伪代码里没有 “{” “}” ,同一代码块用缩进表示。
  3. 数组用 数组名 + [0n1][0…n-1] 表示,如BubbleSort( A[0n1]A[0…n-1])
  4. 注释用双斜杠表示: //
  5. 赋值用箭头表示: ←
  6. 等于用一个等号表示: =

一、算法名称

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 i0 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 i0 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中的元素

i0;j←0;k←0
while i<p and j<q do
	if B[i]≤C[j] then
		A[k]B[i];ii+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]