Je n'ai jamais vraiment eu besoin d'écrire de grandes quantités de pseudo-code formel, mais le besoin s'est fait sentir, alors j'ai pensé que je choisirais certaines normes pour rester cohérent dans le code. À cet effet, j'ai ramassé des vidéos de didacticiels «iTunes U», entre autres choses, le 6.046J/18.410J Introduction to Algorithms (SMA 5503).Pseudo-code provenant de certains didacticiels MIT
Dans la première vidéo conférence, le conférencier écrit Insertion Trier sur le tableau noir, et il écrit ceci:
Insertion-Sort(A, N) // Sorts A[1..n]
for j ← 2 to n
do key ← A[j]
i ← j-1
while i > 0 and A[i] > key
do A[i+1] ← A[i]
i ← i-1
A[i+1] ← key
Alors, mes questions:
- Pourquoi
i ← j-1
quandA[i+1] = key
? C'est pourquoi, dans certains cas,←
, et=
dans un autre? Notez que dans le code ci-dessus, le←
est utilisé pour ce dernier, mais dans les documents, disponibles sur le web,=
est utilisé, est-ce simplement une faute de frappe? (Je suppose donc) - Plus important encore, pourquoi
do key ← A[j]
lorsquei ← j-1
? Quel est si spécial qu'il nécessite une commandedo
comme ça, et une indentation?
En d'autres termes, pourquoi n'est pas le pseudo-code ci-dessus écrite comme celui-ci (avec mes points forts):
Insertion-Sort(A, N) // Sorts A[1..n]
for j ← 2 to n
key ← A[j] <-- lost the do here
i ← j-1 <-- no indentation
while i > 0 and A[i] > key
A[i+1] ← A[i] <-- lost the do here
i ← i-1 <-- no indentation
A[i+1] ← key
Dernière question: Quelqu'un at-il une norme pour pseudo-code Pratique quelque part? Mon objectif principal est la cohérence, de sorte que je dois seulement "enseigner" les destinataires une fois.