Pseudo-kode fra noen MIT kurs

stemmer
0

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-1da A[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]da i ← j-1? Hva er så spesielt at det krever en dokommando 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.

Publisert på 15/09/2009 klokken 12:19
kilden bruker
På andre språk...                            


2 svar

stemmer
1

Strukturert engelsk er en 'standardisert' pseudo-kode språk.

Svarte 15/09/2009 kl. 12:40
kilden bruker

stemmer
0

pilen tjene som = i normal kode.

likhetstegn i pseudo tjene som == i normal kode

j <- 1middelj = 1

og j = 1 menerif( j == 1)

Svarte 04/09/2013 kl. 22:29
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more