Сортировка вставки - вопрос псевдокода - PullRequest
0 голосов
/ 09 сентября 2011

Я читаю книгу «Введение в алгоритмы», псевдокод -

INSERTION-SORT(A)
1 for j ← 2 to length[A]
2   do key ← A[j]
3     ▹ Insert A[j] into the sorted sequence A[1  j - 1].
4     i ← j - 1
5     while i > 0 and A[i] > key
6      do A[i + 1] ← A[i]
7         i ← i - 1
8     A[i + 1] ← key

В то время как псевдокод в вики -

 for j ←1 to length(A)-1
     key ← A[ j ]
     > A[ j ] is added in the sorted sequence A[0, .. j-1]
     i ← j - 1
     while i >= 0 and A [ i ] > key
         A[ i +1 ] ← A[ i ]
         i ← i -1
     A [i +1] ← key

Почему один начинается с 2 и повторяется до длины, а другой начинается с 1 и повторяется до длины A -1?

Ответы [ 2 ]

7 голосов
/ 09 сентября 2011

Похоже, что первый блок псевдокода использовал индексирование на основе 1, а второй - индексирование на основе 0.

0 голосов
/ 14 ноября 2011

Это в основном то же самое, просто один индекс начинается с 0 (с нуля), а другой - с 1 (с нуля).Например, в C # массивы начинаются с нуля, в то время как VB основаны на единицах.

...