Pseudocode
The documentation embeds some algorithms written using pseudocode.js
whose syntax is mostly compatible with latex package algorithmic
.
The documentation and in particular the grammar is here.
Example of the pseudocode for the quicksort algorithm rendered by
pseudocode.js
Algorithm 1 Quicksort
procedure Quicksort($A, p, r$)
if $p < r$ then
$q = $ Partition($A, p, r$)
Quicksort($A, p, q - 1$)
Quicksort($A, q + 1, r$)
end if
end procedure
procedure Partition($A, p, r$)
$x = A[r]$
$i = p - 1$
for $j = p$ to $r - 1$ do
if $A[j] < x$ then
$i = i + 1$
exchange $A[i]$ with $A[j]$
end if
exchange $A[i]$ with $A[r]$
end for
end procedure
In order to display it properly you have to use [.pseudocode] on a literal block.
|
Original code in AsciiDoc
[.pseudocode] .... % This quicksort algorithm is extracted from Chapter 7, Introduction to Algorithms (3rd edition) \begin{algorithm} \caption{Quicksort} \begin{algorithmic} \PROCEDURE{Quicksort}{$A, p, r$} \IF{$p < r$} \STATE $q = $ \CALL{Partition}{$A, p, r$} \STATE \CALL{Quicksort}{$A, p, q - 1$} \STATE \CALL{Quicksort}{$A, q + 1, r$} \ENDIF \ENDPROCEDURE \PROCEDURE{Partition}{$A, p, r$} \STATE $x = A[r]$ \STATE $i = p - 1$ \FOR{$j = p$ \TO $r - 1$} \IF{$A[j] < x$} \STATE $i = i + 1$ \STATE exchange $A[i]$ with $A[j]$ \ENDIF \STATE exchange $A[i]$ with $A[r]$ \ENDFOR \ENDPROCEDURE \end{algorithmic} \end{algorithm} ....