N-am avut nevoie de mult pentru a scrie cantități mari de pseudo-cod formale, dar a apărut necesitatea, așa că m-am gândit iau niște standarde pentru a rămâne consecventă în cod.
În acest sens am luat unele „iTunes U“ video courseware, printre altele, 6.046J / 18.410J Introducere în algoritmi (SMA 5503) .
În primul film de curs, lectorul scrie Inserția Sortare pe tablă, iar el scrie acest lucru:
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
Deci, întrebările mele:
- De ce
i ← j-1atunci cândA[i+1] = key? Acesta este, de ce ,←în unele cazuri, și=într - un alt? Rețineți că , în codul de mai sus,←este utilizat pentru acesta din urmă prea, dar în fișe, disponibile pe internet,=este folosit, este acest lucru pur și simplu o greșeală de scriere? (Presupun acest lucru) - Mai important, de ce
do key ← A[j]atunci cândi ← j-1? Ce este atât de special încât este nevoie de odocomandă de genul asta, și o scobitură?
Cu alte cuvinte, de ce nu este de mai sus pseudo-cod scris ca acesta (cu accente mele):
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
Ultima întrebare: Are cineva un standard de cod pentru pseudo-cod undeva la îndemână? Scopul meu principal este de coerență, astfel încât am doar să „învețe“ destinatarii o dată.













