Pseudo-kód z nějakého MIT výukového

hlasů
0

Nikdy jsem neměl moc potřebu psát velké množství formálních pseudo-kódu, ale vznikla potřeba, tak jsem myslel, že bych vyzvednout nějaké normy, aby zůstali konzistentní kódu.

Za tímto účelem jsem sebral nějaké „iTunes U“ výukového videa, mimo jiné věcí, 6.046J / 18.410J Úvod do algoritmů (SMA 5503) .

Hned v prvním přednáškovém video, přednášející píše insertion sort na tabuli a píše toto:

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

Takže mé otázky:

  • Proč i ← j-1, když A[i+1] = key? To znamená, že důvod, proč v některých případech i =v jiném? Všimněte si, že ve výše uvedeném kódu se používá pro druhou taky, ale na podklady, k dispozici na webu, =je používán, je to prostě překlep? (Předpokládám tak)
  • Ještě důležitější je, proč do key ← A[j], když i ← j-1? Co je tak zvláštního, že vyžaduje dopříkaz takhle, a zářez?

Jinými slovy, proč není nad pseudo-kód napsaný takto (s mým vrcholům):

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

Poslední otázka: Má někdo standardní kód pro pseudo-kódu šikovný někam? Mým hlavním cílem je konzistence, takže mám jen „učit“ příjemcům najednou.

Položena 15/09/2009 v 13:19
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Strukturované angličtina je ‚standardizované‘ pseudo-kódu jazyka.

Odpovězeno 15/09/2009 v 13:40
zdroj uživatelem

hlasů
0

šipky slouží jako = v normálním kódu.

rovnítko v pseudo sloužit jako == v normálním kódu

takže j <- 1průměrnáj = 1

a j = 1 znamenajíif( j == 1)

Odpovězeno 04/09/2013 v 23:29
zdroj uživatelem

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