1. 二分查找
定义:基于有序顺序表的查找,时间复杂度O(logN)
//非递归
int binarySearch(int a[], int key)
{
int left=0, right = a.size()-1;
while(left<=right)
{
int mid = left + (right-left)/2;
if(a[mid] == key) return mid;
else if(a[mid]>key) right = mid-1;
else left = mid+1;
}
return -1;
}
//递归
int BinarySearch(int left, int right)
{
if(left > right) return -1;
int mid = left+(right-left)/2;
if