R语言实现二分查找法

时间:2023-03-09 05:18:31
R语言实现二分查找法

二分查找时间复杂度O(h)=O(log2n),具备非常高的效率,用R处理数据时有时候需要用到二分查找法以便快速定位

 Rbisect <- function(lst, value){
low=1
high=length(lst)
mid=length(lst)%/%2
if (lst[low]==value) low
else if (lst[high]==value) high
else{
while (lst[mid] != value) {
if (value > lst[mid]){
low = mid+1
} else if (value < lst[mid]) {
high = mid - 1
}
if(high<low){
mid=-1;break
}
mid=(low+high)%/%2
}
mid
}
}