Jeg har aldri hatt mye behov for å skrive store mengder formell pseudo-kode, men behovet har oppstått, så jeg tenkte jeg skulle plukke noen standarder for å være konsekvent på tvers av kode.
For å oppnå dette jeg plukket opp noen iTunes U Courseware videoer, blant annet den 6.046J / 18.410J Introduksjon til algoritmer (SMA 5503) .
I den aller første forelesning video, skriver foreleser Innsetting Sorter på tavla, og han skriver dette:
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
Så mitt spørsmål:
- Hvorfor
i ← j-1daA[i+1] = key? Det er, hvorfor←i noen tilfeller, og=i en annen? Merk at i koden ovenfor, den←brukes for sistnevnte også, men i brosjyrer, tilgjengelig på nettet,=er brukt, er dette rett og slett en skrivefeil? (I anta så) - Enda viktigere, hvorfor
do key ← A[j]dai ← j-1? Hva er så spesielt at det krever endokommando som det, og en innrykk?
Med andre ord, hvorfor er ikke over pseudo-kode skrevet som dette (med mine høydepunkter):
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
Siste spørsmål: Har noen en kode standard for pseudo-kode hendig sted? Mitt hovedmål er konsistens, slik at jeg bare trenger å lære mottakerne gang.













