frank-lam / fullstack-tutorial

🚀 fullstack tutorial 2022,后台技术栈/架构师之路/全栈开发社区,春招/秋招/校招/面试
https://frank-lam.github.io/fullstack-tutorial
11.49k stars 2.44k forks source link

关于数据结构-二叉树-二分查找代码的问题 #44

Open bnjsj opened 4 years ago

bnjsj commented 4 years ago

针对文中代码修改如下,见注释处
private static int search(int[] data,int l,int r,int target){ int mid; //注意:此处循环条件为<=,若无=则无法查找数组起始处数据 while(l<=r){ mid=(l+r)/2; if(data[mid]==target){ return mid; }else if(data[mid]<target){ l=mid+1; }else{ r=mid; } } return -1; } private static int searchDfs(int[] data,int l,int r,int target){ //注意:此处循环条件为>,若有=则无法查找数组起始处数据 if(l>r){ return -1; } int mid=(l+r)/2; if(target==data[mid]){ return mid; }else if(target>data[mid]){ return searchDfs(data,mid+1,r,target); }else{ return searchDfs(data,l,mid,target); } }