关于查找,在我们日常生活中处处可见。关于顺序表的查找非常简单,就是在数组里面查看有没有关键字,挨个儿对比最后返回数组下标即可,这篇文章主要来讲讲有序表查找中的一种——折半查找~
一、什么是折半查找
我们把每次去中间记录查找的方法叫做折半查找。
折半查找又称为二分查找。他的前提是线性表中的记录必须是关键码有序(通常是从小到大有序)。
二、折半查找的基本思想
在有序表中,取中间记录作为比较对象,如果key和中间记录关键字相等,就查找成功;如果key<mid就在mid的左边继续查找,如果key>mid就在mid的右边继续查找。不断重复上述过程,知道查找成功,或所有查找区域没有记录,查找失败为止
三、代码实现
int Binary_Search(int* a,int n,int key)
{
int low,high,mid;
low = 1;
high = n