Algorithm 插入排序伪码问题
我正在读算法导论这本书,伪代码是Algorithm 插入排序伪码问题,algorithm,pseudocode,insertion-sort,Algorithm,Pseudocode,Insertion Sort,我正在读算法导论这本书,伪代码是 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
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和循环开始直到长度为-1?看起来第一个伪代码块使用基于1的索引,而第二个使用基于0的索引。基本上是一样的,只是一个索引从
0开始(基于零)另一个在1
(一个为基础)。例如,在C中,数组是基于零的,而VB是基于一的。+1,的确如此。维基百科上的书呆子会使用基于0的索引=)我希望人们能坚持一种方法。这有时会使阅读示例变得困难。