我很新的C++,并需要一些建议。 这里我有一段代码,用于测量数组中出现任意整数x的次数,并输出比较结果。但我已经阅读了使用多路分支(“分而治之!”)技术,我可以使算法运行得更快。需要关于改进我的代码的建议:搜索算法
任何人都可以指向正确的方向我应该怎么做呢?
这里是我做的另一种方法我工作代码:
#include <iostream>
#include <cstdlib>
#include <vector>
using namespace std;
vector <int> integers;
int function(int vectorsize, int count);
int x;
double input;
int main()
{
cout<<"Enter 20 integers"<<endl;
cout<<"Type 0.5 to end"<<endl;
while(true)
{
cin>>input;
if (input == 0.5)
break;
integers.push_back(input);
}
cout<<"Enter the integer x"<<endl;
cin>>x;
function((integers.size()-1),0);
system("pause");
}
int function(int vectorsize, int count)
{
if(vectorsize<0) //termination condition
{
cout<<"The number of times"<< x <<"appears is "<<count<<endl;
return 0;
}
if (integers[vectorsize] > x)
{
cout<< integers[vectorsize] << " > " << x <<endl;
}
if (integers[vectorsize] < x)
{
cout<< integers[vectorsize] << " < " << x <<endl;
}
if (integers[vectorsize] == x)
{
cout<< integers[vectorsize] << " = " << x <<endl;
count = count+1;
}
return (function(vectorsize-1,count));
}
谢谢!
*多路分支(“分割和conqurer!”)技术* ??? – NPE 2013-04-08 15:56:41
我在想这件事:http://en.wikipedia.org/wiki/Divide_and_conquer_algorithm – 2013-04-08 15:58:09