实验5 查找算法
一、 实验目的
1) 掌握有序表、无序表查找的基本思想及存储、运算的实现
2) 深刻理解各种算法的特点,并加以灵活应用
3)加深对查找的理解,逐步培养解决实际问题的编程能力
二、 实验内容
1)建立一个无序表并实现其上的顺序查找;
2)建立一个有序表并实现其上的折半查找(用递归和非递归两种算法实现);
#include "stdio.h"
//无序表的顺序查找函数
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 Binary_Search1(int a[],int n,int key)
{
int low,high,mid;
low=1;
high=n;
while(low<=high)
{
mid=(low+high)/2;
if(key<a[mid])
high=mid-1;
else if(key>a[mid])
low=mid+1;
else
return mid;
}