//顺序查找算法
#include <stdio.h>
int search(int arr[],int key){
int i;
for(i=9;i>=0;i--)
if(arr[i]==key)
return i;
}
int main(){
int a[10];
int i;
for(i=1;i<10;i++)
a[i]=i;//1-9设置元素
int key;
printf("请输入查找的元素:");
scanf("%d",&key);
a[0]=key;//a[0]保存查找的关键字 哨兵
int index=search(a,key);
if(index!=0){
printf("查找成功\n");
}
else printf("查找失败\n");
return 0;
}
二分查找算法实现
//二分查找算法
#include <stdio.h>
int binary_search(int arr[],int size, int key){
int low, end;
low = 0;
end = size - 1;
while (low<=end){
int mid = (low + end) / 2;
if (arr[mid] == key)
return mid;
else if (arr[mid]>key)
end = mid - 1;
else low = mid + 1;
}
return -1;
}
int main(){
int a[10];
int i;
for (i = 0; i<10; i++)
a[i] = i;//0-9设置元素
int length = sizeof(a) / sizeof(int);
int key;
printf("请输入查找的元素:");
scanf("%d", &key);
int index = binary_search(a, length,key);
if (index!=-1)
printf("查找成功\n");
else printf("查找失败\n");
return 0;
}