C++ 线性搜索的意外输出
请在下面找到我的线性搜索代码。二进制搜索函数正在提供正确的输出。但是在做了压力测试之后,我没有得到线性搜索的正确输出。 当使用压力测试产生的相同输入(测试用例)实现相同的线性搜索代码时,代码给出正确的输出C++ 线性搜索的意外输出,c++,linear-search,C++,Linear Search,请在下面找到我的线性搜索代码。二进制搜索函数正在提供正确的输出。但是在做了压力测试之后,我没有得到线性搜索的正确输出。 当使用压力测试产生的相同输入(测试用例)实现相同的线性搜索代码时,代码给出正确的输出 int linear_search(const vector<int> &a, int x) { for (int i = 0; i < a.size(); ++i) { if (a[i] == x) { return i;
int linear_search(const vector<int> &a, int x)
{
for (int i = 0; i < a.size(); ++i)
{
if (a[i] == x)
{
return i;
}
}
return -1;
}
int线性搜索(常数向量&a,int x)
{
对于(int i=0;i
主要功能
int main() {
while(true)
{
int n=5;
vector<int> a(n);
for (size_t i = 0; i < n; i++) {
int b = rand() % 5 + 1;
a.push_back(b);
}
for (size_t i = 0; i < n; i++) {
std::cout<<a[i]<<" ";
}
std::cout<<"\n";
int x = rand() % 10 + 1;
std::cout<<x<<"\n";
int l = linear_search(a,x);
int b = binary_search(a,x);
if(l != b)
{
std::cout<<l<<"\n";
std::cout<<b<<"\n";
break;
}
else
{
std::cout<<"Ok\n";
}
}
}
intmain(){
while(true)
{
int n=5;
向量a(n);
对于(大小i=0;i std::cout您正在创建一个包含n
元素的向量:
vector<int> a(n);
向量a(n);
然后另外推回ingn
元素
这将导致a
中的n*2
元素,在线性搜索中,您将查看所有元素。我猜在这个特定的测试用例中,第5个索引的值为4
。您还忘了为随机数生成器设置种子。您需要使用srand