关于插入排序的一点疑问,真心请教!
各位,小弟初学C语言,目前在看《算法导论》那本大部头。刚刚看到第一个关于插入排序的伪代码描述,有几个问题实在想不通,第一,代码的第6行,互换两个值不应该需要第三个变量吗?譬如t=b,b=a,a=t这样才能实现a、b值互换吗?
第二,代码的第7行,变量i自减,为什么?
第三,代码的第8行,A[i+1]的值不是已经在代码的第6行赋值了吗,为何还要再赋值?
附伪代码
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