Псевдо-код из некоторых MIT курсов

голоса
0

Я никогда не имел особой нужды в написании большого количества формальных псевдо-кода, но возникла необходимость, так что я выбрал бы некоторые стандарты, чтобы остаться последовательным по коду.

С этой целью я взял некоторые «ITunes U» Courseware видео, среди прочего 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