文字列の並べ替えられたベクトルがあり、ベクトル内のすべての要素の共起性を見つけようとしています:
V = {"AAA","AAA","AAA","BCA",...}
int main()
{
vector<string> vec;
//for every word in the vector
for(size_t i = 0; i < vec.size();i++)
{
int counter = 0;
//loop through the vector and count the coocurrence of this word
for(size_t j = 0; j < vec.size();j++)
{
if(vec[i] == vec[j]) counter +=1;
}
cout << vec[i] << " "<<counter <<ed,l
}
}
複雑さはO(n ^ 2)ですよね?これは非常に時間がかかります。どうすれば解決する方法を見つけることができますか?
ありがとうございました、
それが編集です:
int main()
{
vector<string> vec;
//for every word in the vector
for(size_t i = 0; i < vec.size();i++)
{
int counter = 0;
//loop through the vector and count the coocurrence of this word
for(size_t j = i+1; j < vec.size()-1;j++)
{
if(vec[i] == vec[j]) counter +=1;
}
cout << vec[i] << " "<<counter <<ed,l
}
}