Nigdy nie miałem dużo potrzebę pisania dużych ilości formalnej pseudo-kodu, ale powstała potrzeba, więc pomyślałem, że mogę odebrać pewne standardy, aby utrzymać spójne kodu.
W tym celu wybrałem się kilka „iTunes U” filmów szkoleniowych, wśród innych rzeczy, 6.046J / 18.410J Wprowadzenie do algorytmów (SMA 5503) .
W pierwszym wykładzie wideo, wykładowca pisze Sortowanie przez wstawianie na tablicy i pisze tak:
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
Więc moje pytania:
- Dlaczego
i ← j-1kiedyA[i+1] = key? To jest, dlaczego←w niektórych przypadkach, a=w innym? Zauważ, że w powyższym kodzie,←służy do tego ostatniego też, ale w materiały informacyjne, dostępne w internecie,=jest używany, jest to po prostu literówka? (Zakładam, że tak) - Co ważniejsze, dlaczego
do key ← A[j], kiedyi ← j-1? Co jest takiego specjalnego, że wymaga todopolecenie tak, i wgniecenie?
Innymi słowy, dlaczego nie jest to powyżej pseudo-kod napisany w ten sposób (z moich najważniejszych):
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
Ostatnie pytanie: Czy ktoś ma standardu kodu dla pseudo-kodu poręcznym gdzieś? Moim głównym celem jest spójność, tak że mam tylko „nauczyć” odbiorców jednocześnie.













