对某数组a中的n个元素随机赋0、1或2这三种值之,现按如下算法对数组a从小到大升序排序,设置两个变量:Left记录第一个1的位置,其左侧全是0,Right记录第一个2的前一位置,其右侧全是2。使用i从头到尾查询一遍,根据a(i)的值决定其是否与a(Left)或a(Right)交换,直至i与 Right相遇。 left=1: right =n: i=1 Do While i <=right If a(i)=0 Then tmp= a(left): a(left)=a(i): a(i)= tmp left=left+1 i=i+1 ElseIf a(i)= 1 Then i=i+1 Else ① End If Loop 要实现上述排序算法思想,则横线处代码应该是( )。
A . tmp=a(i): a(i)=a(right): a(right)=tmp: right=right -1
B . tmp=a(i): a(i)=a(right): a(right)=tmp: right=right-1: i=i+1
C . i=i-1
D . right=right-1: i=1-1
答案:A