有人可以为以下简单算法提供可能的循环不变量:
输入:A[0,...,n-1]
和B[0,...,m-1]
,每个都可能包含重复的元素
输出:第一对(i,j),A[i] == B[j]
。
算法:
for i <- 0 to n-1
for j <- 0 to m-1
if A[i] = B[j] then
return (i,j)
endif
endfor
endfor
return null
到目前为止,我只有一个可能有效或无效的解决方案:
S = {(i,j) | A[0,...,i-1] and B[0,...,j-1] has no common elements}
答案 0 :(得分:2)
在第一个循环的qth
次迭代内的第二个循环的pth
迭代开始时,A[i] != B[j]
为所有i = 0...p - 1, j = 0...q - 1
。