我正在阅读“算法入门”一书,伪代码是
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
虽然wiki上的伪代码是
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的长度?
答案 0 :(得分:7)
看起来第一个伪代码块使用了基于1的索引,而第二个伪代码块使用了基于0的索引。
答案 1 :(得分:0)
它基本上是一样的,只是一个人的索引从0
(从零开始)而另一个在1
(从一开始)开始。例如。在C#中,数组是从零开始的,而VB则是从一开始的。