查找算法

查找是指在数据序列中寻找符合特定条件的数据。

在进行查找时,主要是以要查找的数据与数据序列中的数据进行比较,如果数据不相等,则进行下一次的比较,一直找到相等的数据为止。

查找算法在实际运做过程中数据的存储方式不同,可分为“内部查找”与“外部查找”两类。

内部查找是如果待查找的数据可以全部加载到内存中在进行的查找;
外部查找是如果要查找的数据量太大,无法全部加载到内存中,必须借助辅助存储设备的空间再进行查找;

查找法可分为:线性查找法、二分查找法、插补查找法和散列查找法。
/*算法名称:线性查找法*/

int linear_search(int A[],int n,int key)
{
int i=0;
while(i<n-1)
{
 if(A==key)
 {
   return i;  //查找成功
 }
 else
  i++;
}
return -1;  //查找失败
}

/*算法名称:二分查找法*/

int binary_search(int *A,int key,int low,int upper)
{
int mid=0;
while(low<upper)
{
 mid=(int)((low+upper)/2)
 if(key==A[mid])
  return mid;  //查找成功
 else if(key>A[mid])
  low=mid+1;
 else
  upper=mid-1;
}
return -1;  //查找失败
}
posted @ 2006-08-18 13:12  MSDI  阅读(438)  评论(0编辑  收藏  举报