1 二分查找
二分查找先将数组进行排序,然后进行查找,因为考虑左闭右开或者左闭右闭问题,所以全部转为左闭右闭。
#include <iostream>
#include <algorithm>
using namespace std;
int binsearch(int* arr,int size,int p){
//考虑到左闭右开,或者左闭右闭
//全部转化成左闭右闭
//siza是数组的大小,元素个数
int L = 0; //左端点
int R = size - 1;
while(L <= R){
int mid = L + (R - L)/2;
if(p == arr[mid])
return mid;
else if(p > arr[mid])
L = mid + 1;
else
R = mid - 1;
}
return -1;
}
void test(){
int arr[5] = {1,8,4,2,9};
int r = binsearch(arr,5,2);
}
int main(){
test();
return 0;
}