查找---二分查找
程序员文章站
2022-03-14 09:57:45
...
折半查找又称二分查找,它仅适用于有序的顺序表。
查找成功,返回数组的下标,否则,返回-1。
算法如下:
//二分查找,返回找到数字的下标
int binary_search(vector<int> v,int key){//v为已经排好序的数组
if(v.size()==0){
return -1;//未找到
}
int low = 0;
int high = v.size()-1;
int mid = 0;
while(low <= high){
mid = (low+high)/2;
if(v[mid]==key){
return mid;
}else if(v[mid] > key){
high = mid-1;//从前半部分查找
}else{
low = mid +1;//从后半部分查找
}
}
return -1;
}
上一篇: Qt 将10进制数字与26进制(用A-Z来表示)之间相互转换
下一篇: 查找 —— 二分查找