所谓的顺序表查找就是一块连续的存储单元进行依次的访问查找。
比如说:
1 98 2 8 99 0000 22 33 66 77 89
在这些数中查找22,则会从1 98 2 8 。。。依次向后进行比较。
实现代码:
//顺序表查找版本一
#include
#include
int Sequential_Search(int *a, int n, int key)
{
int i;
for(i = 0; i <= n; i++)
{
if(a[i] == key)
return i;
}
return 0;
}
int main()
{
int j = 0;
int a[10];
for(j = 0; j < 10; j++)
{
a[j] = j;
}
printf("%d",Sequential_Search(a, 10, 7));
return 0;
}
这段代码含有一个哨兵:
//顺序白查找优化(带哨兵)
#include
#include
int Sequential_Search2(int *a, int n, int key)
{
int i;
a[0] = key;
i = n;
while(a[i] != key)
{
i--;
}
return i;
}
int main()
{
int j;
int a[100];
for(j = 0; j < 100; j++)
{
a[j] = j;
}
printf("%d\n", Sequential_Search2(a, 100, 86));
return 0;
}