1,首先对n个元素排序(归并排序或者堆排序),时间复杂度为⊙(nlgn);
2,令Xi = A[i], Xj = A[j],初始化i = 0, j = n - 1
按照如下规则进行:
if Xi + Xj < X
then i++
if Xi + Xj > X
then j--
if Xi + Xj == X
then print Xi and Xj
s=[23,43,4,5]
def find_sum(x,array)
s=quick_sort(array);
i=0;
j=array.size-1;
while i<j do
key=s[i]+s[j]
return [s[i],s[j]] if(key==x)
if key<x
i=i+1
else
j=j-1
end
end
return "null"
end