C++ 比较一个文件中的两个数字序列可以在执行时高效地执行 #包括 #包括 iff流(“Bac.txt”); 使用名称空间std; int main() { int n,m,i,j,ok,nr=0; 长v[100],p[100]; f> >m; f> >n; 对于(i=1;i>p[i]; 对于(i=1;i>v[i]; 对于(i=1;i
,您的算法当前是O(N2),这不是特别好 如果对这两个序列进行排序,只需合并两个数组,就可以在O(N)时间内完成此操作C++ 比较一个文件中的两个数字序列可以在执行时高效地执行 #包括 #包括 iff流(“Bac.txt”); 使用名称空间std; int main() { int n,m,i,j,ok,nr=0; 长v[100],p[100]; f> >m; f> >n; 对于(i=1;i>p[i]; 对于(i=1;i>v[i]; 对于(i=1;i,c++,mingw,C++,Mingw,,您的算法当前是O(N2),这不是特别好 如果对这两个序列进行排序,只需合并两个数组,就可以在O(N)时间内完成此操作 如果这两个序列没有排序,您可以使用std::set在O(N.logN)时间内进行排序。另外,为什么要从1开始索引?在数组的第0个插槽中有一个对象?for(i=0;i n,它也是一样的东西,索引在C++中使用1个数组是很不酷的。语言使用0个数组。你应该习惯它,否则你会把自己和任何工作的人弄糊涂。用你的代码。很抱歉,你被教错了,这不是一件大事,但世界上其他所有的C程序员都是从零开始
如果这两个序列没有排序,您可以使用
std::set
在O(N.logN)时间内进行排序。另外,为什么要从1开始索引?在数组的第0个插槽中有一个对象?for(i=0;i#include<iostream.h>
#include<fstream.h>
ifstream f("Bac.txt");
using namespace std;
int main()
{
int n,m,i,j,ok,nr=0;
long v[100],p[100];
f>>m;
f>>n;
for(i=1;i<=m;i++)
f>>p[i];
for(i=1;i<=n;i++)
f>>v[i];
for(i=1;i<=n;i++)
{
ok=0;
for(j=1;j<=m;j++)
{
if(v[i]==p[j])
ok=1;
}
if(ok==0)
nr++;
}
cout<<nr;
}