2009-09-15 2 views
0

많은 양의 공식적인 의사 코드를 작성할 필요가 없었지만 필요성이 제기되어 코드간에 일관성을 유지하기 위해 몇 가지 표준을 선택해야한다고 생각했습니다.일부 MIT 코스웨어의 의사 코드

그 결과로 나는 "iTunes U"코스웨어 비디오를 픽업했습니다. 다른 것들 중에서는 6.046J/18.410J Introduction to Algorithms (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-1A[i+1] = key? 즉, 어떤 경우에는 이, 또 다른 하나는 =일까요? 위의 코드에서 도 후자에 사용되지만 유인물에서는 웹에 =이 사용됩니다.이 단순히 오타가 아닙니까? (나는 그렇게 생각한다)
  • 더 중요한 이유는 do key ← A[j] 일 때 i ← j-1? 너무 특별해서 그와 같은 명령과 들여 쓰기가 필요합니다. 즉

, 왜 (내 하이라이트)과 같이 작성 위의 의사 코드되지 않습니다 :

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 

마지막 질문 : 사람이 의사 코드에 대한 코드 표준이 있습니까 어딘가에 편리할까요? 나의 주요 목표는 일관성이다. 그래서 나는 한 번만 수령인을 "가르쳐야"한다.

답변

0

화살표는 일반 코드에서 = 역할을합니다.

은 의사에

등호

너무 j <- 1j = 1

j = 1 의미 의미 정상 코드 == 역할 if(j == 1)