我很新的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