二分查找javascript
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> //二分查找要保证我们的数组是一个有序的. //思想是 //首先把数组的中间这个数找出,然后和你要查询的数比较 //① 你要查询的数比中间的数大. 则说明我们应当该数组的右边[后边]查询 //② 你要查询的数比中间的数小 .则说明我们应当该数组的左边[前边]查询 //③ 你要查询的数等于中间的数, 说明找到 var arr = [1,3,5,7,12,34,123,345]; binarySearch(345,arr,0,arr.length-1); function binarySearch(findValue,array,minIndex,maxIndex){ var midIndex=Math.round((minIndex+maxIndex)/2); if(minIndex>maxIndex){ document.write('don\'t,find'); return; } if(findValue>array[midIndex]){ binarySearch(findValue,array,midIndex+1,maxIndex); } else if(findValue<array[midIndex]){ binarySearch(findValue,array,minIndex,midIndex-1); } else{ document.write("find it, result is "+midIndex); } } </script> </head> <body> </body> </html>