Je ne l'ai jamais eu besoin de beaucoup pour écrire de grandes quantités de pseudo-code formel, mais il est apparu nécessaire, alors je pensais que je prendrais des normes afin de rester cohérent dans le code.
À cet effet , je pris quelques « iTunes U » vidéos didacticielles, entre autres le 6.046J / 18.410J Introduction aux algorithmes (SMA) 5503 .
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
Donc, mes questions:
- Pourquoi
i ← j-1quandA[i+1] = key? C'est, pourquoi ,←dans certains cas, et=dans un autre? Notez que dans le code ci - dessus, l'←on utilise pour ce dernier aussi, mais dans les documents, disponibles sur le web,=est utilisé, est - ce simplement une faute de frappe? (Je suppose que oui) - Plus important encore , pourquoi
do key ← A[j]quandi ← j-1? Ce qui est si spécial qu'il faut unedocommande comme ça, et une empreinte?
Autrement dit, pourquoi ne 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 de code pour pseudo-code quelque part à portée de main? Mon objectif principal est la cohérence, de sorte que je ne « enseigner » les bénéficiaires une fois.













