关于一个算法复杂性问题
一个有n个整数已排列数组,设计一个O(n)时间的算法确定其中是否有这么两个数,它们的和是x
我来练练手,题目很明显一个有n个整数已排列数组
#include <iostream>
using namespace std;
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int i=0,k=9;
int x;
cout << "请输入和的值: ";
cin >> x;
while(i<k)
{
if(a[i]+a[k]==x)
{
cout << "存在这样的两个数";
return 0;
}
if(a[i]+a[k]<x)
i++;
if(a[i]+a[k]>x)
k--;
}
cout << "不存在这样的两个数。";
return 0;
}