二分查找法
折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是:(这里假设数组元素呈升序排列)将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止;如 果x<a[n/2],则我们只要在数组a的左半部继续搜索x;如果x>a[n/2],则我们只要在数组a的右半部继续搜索x。
比如一个数组a[7]={1,2,3,4,5,6,7};
1,设front=0,表示上边界;
end=7-1;表示下边界;
2,mid=(front+end)/2;中间位置,分成两个区间;
3,比如输入查找x;
a[mid]>x;
说明数据在左半部区间;
end=mid-1;
a[mid]<x;
说明数据在右半部区间;
front=mid+1;
然后接着第二步继续循环寻找,直到找到数据或者找不到为止;
要求
1.必须采用顺序存储结构。
2.必须按关键字大小有序排列