静态查找之顺序查找
//顺序查找
#include<iostream>
using namespace std;
struct LNode {
int Element[100];
int Length;
};
int SequentialSearch(LNode *Tbl, int K)
{ int i;
Tbl -> Element[0] = K;
for(i = Tbl->Length; Tbl->Element[i] != K; i--);
return i;
}
int main()
{
LNode test = { {0,1,2,3,4,5,6,7,8,9}, 9};//待比较数据从第二个开始,第一个位置用来设置哨兵
int result, num = 8;
result = SequentialSearch(&test, num);
if(result == 0)
cout<<"没找到!"<<endl;
else
cout<<"在m["<<result<<"]里找到"<<num-2 <<endl;
system("pause");
return 0;
}
上面用了一个技巧,设置“哨兵”。就是将数组第一个,下标为零的元素设置为待查询的值,查找算法返回查找值得索引。