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; }