题目

对某数组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=i-1 答案:A
信息技术 试题推荐
最近更新