最近學習javascript,有一個問題挺奇怪的,先貼出代碼: 簡單的二分法,但是結果很奇怪,結果如下: 不知道為什麼不一致,很費解,向各位請教一下。 ...
最近學習javascript,有一個問題挺奇怪的,先貼出代碼:
function binarySearch(){ var arr = [0,1,2,3]; var res = actbinarySearch(0,3,2,arr); document.write("<br/>return is "+ res); } function actbinarySearch(left,right,val,arr){ if(left > right){ document.write("do not find"); return -1; } var midIndex = Math.floor((left+right)/2); var midVal = arr[midIndex]; if(val < midVal){ actbinarySearch(left, midIndex-1,val,arr); }else if(val > midVal){ actbinarySearch(midIndex+1, right, val, arr); }else{ document.write("find it "+midIndex); return midIndex; } }
簡單的二分法,但是結果很奇怪,結果如下:
不知道為什麼不一致,很費解,向各位請教一下。