Pseudo-kod z jakiegoś MIT szkoleniowych

głosy
0

Nigdy nie miałem dużo potrzebę pisania dużych ilości formalnej pseudo-kodu, ale powstała potrzeba, więc pomyślałem, że mogę odebrać pewne standardy, aby utrzymać spójne kodu.

W tym celu wybrałem się kilka „iTunes U” filmów szkoleniowych, wśród innych rzeczy, 6.046J / 18.410J Wprowadzenie do algorytmów (SMA 5503) .

W pierwszym wykładzie wideo, wykładowca pisze Sortowanie przez wstawianie na tablicy i pisze tak:

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

Więc moje pytania:

  • Dlaczego i ← j-1kiedy A[i+1] = key? To jest, dlaczego w niektórych przypadkach, a =w innym? Zauważ, że w powyższym kodzie, służy do tego ostatniego też, ale w materiały informacyjne, dostępne w internecie, =jest używany, jest to po prostu literówka? (Zakładam, że tak)
  • Co ważniejsze, dlaczego do key ← A[j], kiedy i ← j-1? Co jest takiego specjalnego, że wymaga to dopolecenie tak, i wgniecenie?

Innymi słowy, dlaczego nie jest to powyżej pseudo-kod napisany w ten sposób (z moich najważniejszych):

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

Ostatnie pytanie: Czy ktoś ma standardu kodu dla pseudo-kodu poręcznym gdzieś? Moim głównym celem jest spójność, tak że mam tylko „nauczyć” odbiorców jednocześnie.

Utwórz 15/09/2009 o 13:19
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
1

Structured English jest 'znormalizowane' język pseudo-code.

Odpowiedział 15/09/2009 o 13:40
źródło użytkownik

głosy
0

strzałka służyć = W normalnym kodu.

Znak równości w pseudo służą jako == w normalnym kodu

więc j <- 1średniaj = 1

i j = 1 myśliif( j == 1)

Odpowiedział 04/09/2013 o 23:29
źródło użytkownik

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