二分查找
二分查找算法,说白了就是在有序的数组里面给予一个存在数组里面的值key,然后将其先和数组中间的比较,如果key大于中间值,进行下一次mid后面的比较,直到找到相等的,就可以得到它的位置。
前提:线性表中的记录必须是关键字有序(通常从小到大),线性表必须采用顺序存储。
基本思想:取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;否则,在右半区查找。不断重复,直到查找成功或查找失败为止。
#include#include #define N 10 using namespace std; int main() { int a[N],front,end,mid,i,x; cout<<"请输入已经排好的序列10个:"< >a[i]; } cout<<"请输入要查询的数字x"< >x; front=0; end=N-1; mid=(front+end)/2; while(front x) end=mid-1; if(a[mid]