/* Masonjar13 撰写
  对数组执行二进制搜索。
  参数:
---------------
  arr: 要搜索的数组
  
  match: 要查找的匹配项
  
  r: 阵列长度
  
  l (optional): 左起始位置
  
  return: arr元素匹配
---------------
*/

arr:=[200,500,1050,20000]
msgbox % binSearch(arr,arr[3],arr.length())

binSearch(arr,match,r,l:=0){
  return arr[mid:=(l+r)//2]=match?mid
      :arr[mid]>match?binSearch(arr,match,mid-1,l)
      :arr[mid]<match?binSearch(arr,match,r,mid+1)
      :-1
}

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。