早教吧 育儿知识 作业答案 考试题库 百科 知识分享

算法排序分析的问题代码:forj=2tolength[A]dokey=A[j]insertA[j]intothesortedsequenceA[1..j-1].i=j-1whilei>0andA[i]>keydoA[i+1]=A[i]i=i-1A[i+1]=key想不通比如我三个数:521第一个key=A[2]=2A[1]>keyA[2]=A[1]为什

题目详情
算法排序分析的问题
代码:for j=2 to length[A]
do key=A[j]
insert A[j] into the sorted sequence A[1..j-1].
i=j-1
while i>0 and A[i]>key
do A[i+1]=A[i]
i=i-1
A[i+1]=key
想不通 比如我三个数:5 2 1
第一个key=A[2]=2
A[1]>key
A[2]=A[1]
为什么下一步i=i-1 那不就是i=1-1=0了 A[i+1]=key不就是=A[1]了
▼优质解答
答案和解析
插入排序.
while i>0 and A[i]>key
do A[i+1]=A[i]
i=i-1
上面三句可以翻译成一句话:
while(i > 0 && A[i] > key)
{
A[i+1] = A[i];
i = i - 1;
}