Написання псевдокоду схоже на написання коду: Це не особливо важливо, якого стандарту ви дотримуєтесь, якщо ви (і люди, з якими ви пишете) насправді дотримуєтесь певного стандарту.
Але для запису, ось ідіосинкратичний стандарт, який я використовую в своїх лекційних записках, науково-дослідних роботах та новій книзі.
Використовуйте стандартний синтаксис імперативу для контролю потоку та доступу до пам'яті - if, while, for, return, array [index], function (аргументи). Пропишіть "ще якщо".
- Але використовуйте замість абоfi e l d( r e c o r d)
record.field
record->field
Використовуйте стандартні математичні позначення для математики - Запис замість того , в модах б замість , s ≤ т замість того , ¬ р замість , √х уx*y
мод бa%b
s ≤ ts <= t
¬ р!p
замість,πзамість,∞замістьі т.д.х--√sqrt(x)
πPI
∞MAX_INT
Але використовуйте для призначення, щоб уникнути проблеми.х ← у==
Але уникайте позначень (і псевдокоду!) Повністю, якщо англійська зрозуміліша.
- Симетрично уникайте англійської мови, якщо позначення чіткіші!
Мінімізуйте синтаксичний цукор - Вкажіть структуру блоку за допомогою послідовного відступу (à la Python). Пропустіть цукристі ключові слова, такі як "початок / кінець" або "до / од" або "фі". Пропустіть номери рядків. Ви НЕ підкреслити ключові слова , як «за» або «а» або «якщо», встановивши їх в інший typeface
або стилі . Колись. Просто ні.
Але імена та константи алгоритму набору в \ textc {Small Caps}, назви змінних курсивом та літеральні рядки в sans serif.
Але додайте невелику кількість вертикального "дихаючого" простору \\[0.5ex]
між значущими фрагментами коду.
Не вказуйте неважливі деталі. Якщо не має значення, в якому порядку ви відвідуєте вершини, просто скажіть "для всіх вершин".
Г / лГL
Я використовую власне полегшене algorithm
середовище LaTeX для набору псевдокоду. (Це просто tabbing
середовище всередині \fbox
.) Ось мій вихідний код алгоритму Borůvka:
\begin{algorithm}
\textul{$\textsc{Borůvka}(G)$:}\+
\\ if $G$ has no edges\+
\\ return $\varnothing$\-
\\[0.5ex]
$L \gets \varnothing$
\\ for each vertex $v$ of $G$\+
\\ add the lightest edge incident to $v$ to $L$\-
\\[0.5ex]
return $L \cup \textsc{Borůvka}(\textsc{Flatten}(G / L))$
\end{algorithm}