无序数组线性搜索c++
Unordered Array Linear Search c++
我的任务是:创建一个方法在一个无序的整数数组中搜索一个值,如果找到该值,返回其在数组中位置的索引,如果没有找到,返回-1。
它只在索引0中找到我输入的数字,否则它说没有找到它。我不知道出了什么问题,当我初始化我自己的数组时,它是工作的,但现在它不会了,因为我让用户创建自己的数组。
任何帮助将是伟大的!谢谢!
到目前为止我的代码是:#include <iostream>
using namespace std;
//SearchArray prototype
int SearchArray( int arInt[], int elementAmount, int intSearched);
int main()
{
int arInt[50];
int elementAmount;
int intSearched = 0;
int i;
cout << "How many elements would you like to add to your array?n";
cin >> elementAmount;
for( i = 0; i < elementAmount; i++)
{
cout << "Enter Number: ";
cin >> arInt[i];
}
cout << "Search array for integer:n";
cin >> intSearched;
//Call search array method
SearchArray(arInt, elementAmount, intSearched);
system("pause");
return 0;
}
int SearchArray( int arInt[], int elementAmount, int intSearched)
{
int i;
bool foundInt = false;
for (i=0; i < elementAmount; i++)
{
if( arInt[i] == intSearched)
{
foundInt = true;
cout << "Integer was found in array at index " << i << endl;
}
else if (!foundInt)
{
cout << "Integer was not found in arrayn";
system("pause");
return -1;
}
}
}
将以下代码添加到您的代码中的SearchArray
方法中,并且它运行良好
int SearchArray( int arInt[], int elementAmount, int intSearched)
{
for(int i=0; i< elementAmount; i++)
{
if (arInt[i] == intSearched)
return i;
}
// element not found!
return -1;
}
并在main
的末尾添加以下内容以检索ans
int ans = SearchArray(arInt, elementAmount, intSearched);
cout<<"Indexed of the element"<<ans<<endl;
这是因为您总是在第一个元素上结束搜索。假设数组为
arr=[3,5,7] and intSearched is 5.
现在在您的SearchArray()
函数foundInt
最初设置为false。因此,当i = 0 and arInt[i] == intSearched
条件不为真时,由于foundInt
是false
,所以它转到else
语句。然后返回-1
。下面的代码会更简单,并且可以完成任务:
int SearchArray(int *arInt, int elementAmount, int intSearched)
{
int i;
for(i=0; i < elementAmount; i++)
{
if(arInt[i] == intSearched)
{
cout << "Integer was found in array at index " << i << endl;
return 1;
}
}
cout << "Integer was not found in arrayn";
system("pause");
return 0;
}
相关文章:
- 向量上的线性搜索
- 二叉搜索如何比线性搜索更快?
- C++(线性搜索和排序)
- C++线性搜索算法,确定数组中元素的数量
- 如何在 c++ 中线性搜索两个数组?
- 变量未在此范围内声明 数组线性搜索
- 如何在 c++ 中对两个向量进行线性搜索?
- 线性搜索 MPI(在其他进程中停止)
- SIMD 线性搜索比展开循环慢
- 是否可以显示需要线性搜索的时间才能找到您在程序中找到的密钥
- 如何在C 中解决线性搜索问题
- 这是哨兵线性搜索的错误方法吗?
- 数组中的线性搜索返回意外结果
- 在不进行线性搜索的情况下,在非常大的数组中找到比给定数字更小的数字
- C++线性搜索算法
- 线性搜索算法
- 关于修复对向量的线性搜索函数的调用的建议
- 链表中的线性搜索[语言:C++编译器:Dev Cpp 4.9.9.2]
- C++ 数组上的线性搜索算法
- 如何创建一个线性搜索算法比我的教科书提供的更容易