Pseudo-Code von einer MIT-Courseware

stimmen
0

Ich hatte noch nie viel Bedarf an großen Mengen an formalen Pseudo-Code zu schreiben, aber die Notwendigkeit entstanden ist, so dass ich dachte, dass ich einige Standards, um über Code konsistent zu bleiben, wählen würde.

Zu diesem Zweck nahm ich einige iTunes U Schulungsvideos auf, unter anderem der 6.046J / 18.410J Introduction to Algorithms (SMA 5503) .

Im ersten Vortrag Video, schreibt der Dozent Insertion Sort an der Tafel, und er schreibt dazu:

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

Also, meine Fragen:

  • Warum , i ← j-1wenn A[i+1] = key? Das heißt, warum in einigen Fällen und =in einem anderen? Beachten Sie, dass in dem obigen Code, der auch für die letztere verwendet wird , aber in den Handreichungen, die im Internet verfügbar ist , =verwendet wird, ist dies einfach ein Tippfehler? (Ich gehe davon aus, so)
  • Noch wichtiger ist , warum , do key ← A[j]wenn i ← j-1? Was ist so besonders , dass es einen erfordert doBefehl so, und eine Vertiefung?

Mit anderen Worten, warum ist nicht der oben Pseudo-Code wie folgt geschrieben (mit meinen 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

Letzte Frage: Hat jemand einen hat Codestandard für praktisch irgendwo Pseudo-Code? Mein Hauptziel ist die Konsistenz, so dass ich nur einmal die Empfänger müssen „lehren“.

Veröffentlicht am 15/09/2009 um 13:19
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
1

Strukturierte Englisch ist eine ‚standardisierte‘ Pseudo-Code - Sprache.

Beantwortet am 15/09/2009 um 13:40
quelle vom benutzer

stimmen
0

der Pfeil als = im Normalcode dienen.

Gleichheitszeichen in pseudo dienen als in normalen Code ==

so j <- 1Mittelwertj = 1

und j = 1 bedeutenif( j == 1)

Beantwortet am 04/09/2013 um 23:29
quelle vom benutzer

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