求一個整型陣列中出現次數最多的一個元素,要求具備較高的效率
阿新 • • 發佈:2019-02-06
using namespace std;
const int N = 128;
int main()
{
vector<int> vec;
vec.reserve(N);
srand(time(NULL));
int i;
for(i = 0;i<N;++i)
{
vec.push_back(rand()%50);
}
sort(vec.begin(),vec.end());
vector<int>::iterator ite;
for(ite = vec.begin();ite != vec.end();++ite)
{
cout<<*ite<<" ";
}
cout<<endl;
int max = 0; //記錄元素出現的最大次數
int temp = 0; //同時記錄當前的元素值
int j;
i = 0;
while(i<N)
{
int count = 1;
for(j = i + 1;j<N && vec[i] == vec[j]; ++j)
{
++count;
}
if(count > max)
{
max = count;
temp = vec[j-1];
}
i = j;
}
cout<<"The Number is : "<<temp<<endl;
cout<<"And the counter is : "<<max<<endl;
system("pause");
return 0;
}
const int N = 128;
int main()
{
vector<int> vec;
vec.reserve(N);
srand(time(NULL));
int i;
for(i = 0;i<N;++i)
{
vec.push_back(rand()%50);
}
sort(vec.begin(),vec.end());
vector<int>::iterator ite;
for(ite = vec.begin();ite != vec.end();++ite)
{
cout<<*ite<<" ";
}
cout<<endl;
int max = 0; //記錄元素出現的最大次數
int temp = 0; //同時記錄當前的元素值
int j;
i = 0;
while(i<N)
{
int count = 1;
for(j = i + 1;j<N && vec[i] == vec[j]; ++j)
{
++count;
}
if(count > max)
{
max = count;
temp = vec[j-1];
}
i = j;
}
cout<<"The Number is : "<<temp<<endl;
cout<<"And the counter is : "<<max<<endl;
system("pause");
return 0;
}