Pseudo-code van een aantal MIT courseware

stemmen
0

Ik heb nog nooit zoveel behoefte aan het schrijven van grote hoeveelheden formele pseudo-code, maar is de behoefte ontstaan, dus ik dacht dat ik een aantal normen om consistent code te blijven halen.

Om dat effect dat ik pakte enkele iTunes U courseware video's, onder andere de 6.046J / 18.410J Introduction to Algorithms (SMA 5503) .

In de eerste lezing video, de docent schrijft Insertion Sort op het bord, en hij schrijft:

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

Dus mijn vragen:

  • Waarom i ← j-1wanneer A[i+1] = key? Dat wil zeggen, de reden waarom in sommige gevallen, en =in een ander? Merk op dat in de bovenstaande code, het wordt ook gebruikt voor het laatste, maar in de hand-outs, beschikbaar op het web, =wordt gebruikt, dit is gewoon een typo? (Ik neem zo)
  • Nog belangrijker, waarom do key ← A[j]wanneer i ← j-1? Wat is er zo bijzonder dat het een vereist docommando als dat, en een inkeping?

Met andere woorden, waarom is niet de bovenstaande pseudo-code geschreven als volgt (met mijn highlights):

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

Final vraag: Heeft iemand een code standaard voor pseudo-code handig ergens? Mijn voornaamste doel is consistentie, zodat ik alleen maar te leren de ontvangers een keer.

De vraag is gesteld op 15/09/2009 om 13:19
bron van user
In andere talen...                            


2 antwoorden

stemmen
1

Gestructureerde Engels is een 'gestandaardiseerde' pseudo-code taal.

antwoordde op 15/09/2009 om 13:40
bron van user

stemmen
0

de pijl dienen als = normale code.

gelijkteken in pseudo dienen als == normale code

dus j <- 1gemiddeldej = 1

en j = 1 betekenenif( j == 1)

antwoordde op 04/09/2013 om 23:29
bron van user

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