插入排序 - 伪代码问题

时间:2011-09-09 04:05:07

标签: 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] ← 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的长度?

2 个答案:

答案 0 :(得分:7)

看起来第一个伪代码块使用了基于1的索引,而第二个伪代码块使用了基于0的索引。

答案 1 :(得分:0)

它基本上是一样的,只是一个人的索引从0(从零开始)而另一个在1(从一开始)开始。例如。在C#中,数组是从零开始的,而VB则是从一开始的。