Nunca tuve mucha necesidad de escribir grandes cantidades de pseudocódigo formal, pero surgió la necesidad, así que pensé en elegir algunos estándares para mantener la coherencia entre códigos.
En ese sentido, recogí algunos videos de cursos de iTunes U, entre otros, la introducción a los algoritmos 6.046J / 18.410J (SMA 5503) .
En el primer video de la conferencia, el profesor escribe Insertion Sort en la pizarra y escribe esto:
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
Entonces, mis preguntas:
- Por qué
i ← j-1cuandoA[i+1] = key? Es decir, ¿←por qué en algunos casos y=en otro? Tenga en cuenta que en el código anterior, también←se usa para este último, pero en los folletos, disponibles en la web,=se usa, ¿es simplemente un error tipográfico? (Asumo que sí) - Más importante, ¿por qué
do key ← A[j]cuándoi ← j-1? ¿Qué es tan especial que requiere undocomando como ese y una sangría?
En otras palabras, ¿por qué no se escribe el pseudocódigo anterior de esta manera (con mis destacados)?
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
Pregunta final: ¿Alguien tiene un código estándar para pseudo-código a mano en alguna parte? Mi objetivo principal es la consistencia, de modo que solo tengo que enseñar a los destinatarios una vez.













