最自然的查找 一个一个比较 废话不多说 上代码
---C语言实现
---优化:哨兵思想 节省循环比较
#include<stdio.h>
#include<stdlib.h>
#define RETURN_FAIL -1
//顺序查找
int SequentialSearch(int *Src_int,int Src_len,int SearchNum)
{
int count;
if(Src_int == NULL || Src_len <= 0)return RETURN_FAIL;
for(count = 1;count <= Src_len ;count++)
{
if(Src_int[count] == SearchNum)
{
return count;
}
}
return RETURN_FAIL;
}
//顺序查找 简单优化
int SequentialSearch_Optimize_1(int *Src_int,int Src_len,int SearchNum)
{
int count;
if(Src_int == NULL || Src_len <= 0)return RETURN_FAIL;
Src_int[0] = SearchNum;//哨兵/守卫/警戒
count = Src_len;
while(Src_int[count--] != SearchNum);
if(++count)return count;
return RETURN_FAIL;
}
int main()
{
int result;
int test[] = {0,1,8,16,23,35,47,59};
result = SequentialSearch_Optimize_1(test,sizeof(test)/sizeof(test[0]),23);
printf("%d\n",result);
system("pause");
return 0;
}