class Solution {
public:
bool search(int A[], int n, int target) {
int low = 0, high = n - 1;
while(low <= high){
int mid = low + ((high - low) >> 1);
if(A[mid] == target){
return true;
}
if(A[low] == A[mid] && A[mid] == A[high]){
low++;
high--;
continue;
}
if(A[low] <= A[mid]){//mid的左边有序
if(A[low] <= target && target < A[mid]){//目标数确定在mid的左半边
high = mid - 1;
}else{
low = mid + 1;
}
}else{//mid的右边有序
if(A[mid] < target && target <= A[high]){//目标数确定在mid的右半边
low = mid + 1;
}else{
high = mid - 1;
}
}
}
return false;
}
};
本文探讨了一种优化的搜索算法在处理复杂数据结构时的效率提升,通过在不同部分进行有序划分,实现快速定位目标元素,特别适用于大规模数据集的查找操作。

5万+

被折叠的 条评论
为什么被折叠?



