我想学习大O符号,我使用本C有点糊涂++代码:这是什么代码的正确的大O
void enterElements(int *s1, int s1Size)
{
for(int x = 0;x < s1Size;++x)
{
retry:
cout<<"Element "<<x + 1<<": ";
cin>>s1[x];
int valid = validation();
if(valid == 1)
{
cout<<"The input must be numbers."<<endl;
goto retry;
}
}
}
因为我不知道该怎么做以及我得到3个结果:
- 9N + 1 - > O(N)
- 为7nm + 2M + 2N + 1 - > O(nm)的
- 7N^2 + 4N + 1 - > 0 (n^2)
这些是否正确?如果没有,你能帮我找到正确的答案吗?
int validation()
{
int validation = 0;
if(cin.fail())
{
validation = 1;
cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
}
else
validation = 0;
return validation;
}
什么是'validation()'? – FDinoff 2013-05-12 22:32:07
如果'validation'是'return 1;',你有'O(infinity)'。 – 2013-05-12 22:32:40
一个函数让我编辑它 – evlvai 2013-05-12 22:33:45