顺序查找适用情况:
1、 对静态查找表中的记录无任何要求
2、 数据量较小
时间复杂度:O(n)
代码(C++)如下(可直接运行):
#include <stdio.h>
#include <iostream>
using namespace std;
void Sequential_Search(int *a, int n, int key)
{
int i = n;
a[0] = key; //哨兵
while (a[i] != key)
{
i--;
}
if (0 == i)
cout << "Search failed!" << endl;
else
{
cout << "Search success!" << endl;
cout << "pos = " << i << endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[5] = {12, -2, 30, 4, 8};
Sequential_Search(a, 5, -20);
system("pause");
return 0;
}
备注:
在查找方向的尽头放置“哨兵”是一种很好的编程技巧,“哨兵”既可以放置在数组的开头
也可以放置在数组的结尾。在数据量较大时,这一技巧对效率提升会很大。