顺序查找(Sequential Search)又称线性查找,是按照序列原有顺序对数组进行遍历比较查询的基本查找算法,它是一种最简单的查找方法。基本原理:对于任意一个序列以及一个给定的元素,将给定元素与序列中元素依次比较,直到找出与给定关键字相同的元素,或者将序列中的元素与其都比较完为止。
对于没有排序的数据,只能使用顺序查找;如果数据已经排好序,可以使用速度比较快的折半查找(二分查找)。
例如: 使用顺序查找算法在数组 { 4,2,8,0,5,7,1,3,6,9 } 中查找元素7。
实现代码如下所示。
#include<iostream>
using namespace std;
int SequentialSearch(int *a, const int n, const int num)
{
int i;
for (i = 0; i < n; i++)
{
if (a[i] == num)
{
return i;
}
}
if (i == n)
{
return -1;
}
}
int main()
{
int a[] = { 4,2,8,0,5,7,1,3,6,9 };
int num = 7;
int result = SequentialSearch(a, 10, num);
if (result == -1)
{
cout << "未找到!" << endl;
}
else
{
cout << "在a[" << result << "]里找到" << num << endl;
}
system("pause");
return 0;
}
在a[5]里找到7