c语言实现两种查找的示例
#include <stdio.h>
#include <stdlib.h>
int main()
{
int L[11]={0,70,38,65,97,76,93,1,15,68,64}; //无序序列
int S[11]={0,10,20,30,35,40,65,67,69,84,97};//有序序列
printf("元素68所在L中的位置为%d ",seqSearch(L,68));
//printf("元素67所在S中的位置为%d ",binSearch(S,67));
return 0;
}
int seqSearch(int L[11],int key) //顺序查找
{
int i=0;
for(i=10;i>=0;i--)
{
if(L[i]==key)
return i;
}
return 0;
}
int binSearch(int S[11],int key) //折半查找
{
int low=1,high=10,m=0;
while(low<=high)
{
m=(low+high)/2; //折半
if(S[m]==key)
return m;
if(key<S[m])
high=m-1;
else
low=m+1;
}
return 0;
}
