Ψευδο-κώδικας από κάποια MIT διδακτικό

ψήφοι
0

Δεν είχα ποτέ μεγάλη ανάγκη για τη συγγραφή μεγάλων ποσοτήτων επίσημη ψευδο-κώδικα, αλλά έχει προκύψει η ανάγκη, έτσι σκέφτηκα ότι θα πάρει κάποια πρότυπα, προκειμένου να παραμείνουν συνεπείς σε όλη κώδικα.

Για το σκοπό αυτό θα πάρει μερικές «iTunes U» βίντεο διδακτικό υλικό, μεταξύ άλλων, η 6.046J / 18.410J Εισαγωγή στους Αλγόριθμους (SMA 5503) .

Στην πρώτη διάλεξη βίντεο, ο καθηγητής γράφει εισαγωγής Ταξινόμηση στον πίνακα, και γράφει το εξής:

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

Έτσι, οι ερωτήσεις μου:

  • Γιατί i ← j-1όταν A[i+1] = key; Δηλαδή, γιατί σε ορισμένες περιπτώσεις, και =σε ένα άλλο; Σημειώστε ότι στον παραπάνω κώδικα, η χρησιμοποιείται για την τελευταία πάρα πολύ, αλλά στα φυλλάδια, διαθέσιμα στο διαδίκτυο, =χρησιμοποιείται, είναι αυτό απλώς ένα τυπογραφικό λάθος; (Υποθέτω έτσι)
  • Πιο σημαντικό, γιατί do key ← A[j]όταν i ← j-1; Τι είναι τόσο ξεχωριστή ότι απαιτεί μια doεντολή όπως αυτό, και μια εσοχή;

Με άλλα λόγια, γιατί δεν είναι η παραπάνω ψευδο-κώδικα γραμμένο σαν αυτό (με ανταύγειες μου):

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

Τελευταία ερώτηση: Υπάρχει κάποιος που έχει ένα πρότυπο κώδικα για ψευδο-κώδικα πρακτικό κάπου; Ο κύριος στόχος μου είναι η συνοχή, έτσι ώστε να έχω μόνο να «διδάξει» τους παραλήπτες φορά.

Δημοσιεύθηκε 15/09/2009 στις 13:19
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
1

Δομημένα αγγλικά είναι μια «τυποποιημένη» γλώσσα ψευδο-κώδικα.

Απαντήθηκε 15/09/2009 στις 13:40
πηγή χρήστη

ψήφοι
0

το βέλος να χρησιμεύσει ως = το κανονικό κώδικα.

ίσον με ψευδο χρησιμεύσει ως == στην κανονική κώδικα

έτσι j <- 1μέσηj = 1

και j = 1 μέσηif( j == 1)

Απαντήθηκε 04/09/2013 στις 23:29
πηγή χρήστη

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