javascript - 为什么我的 javascript 显示值(value)不成立?

标签 javascript arrays binary-search

我正在尝试在数组中进行二进制搜索,但即使我在提示输入中输入数组中的数字,我的 javascript 也没有显示任何值

var array = [10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 100, 102, 105, 200, 250, 300, 320, 350];
var search = parseInt(prompt("enter what you search for"));
var first = 0,
  last = array.length - 1,
  position = 0,
  middle, flag = false;

while ((flag == false) && (first <= last)) {
  middle = ((first + last) / 2);
  if (array[middle] == search) {
    flag = true;
    position = middle;
  } else
  if (array[middle] > search)
    last = middle - 1;

  else
    first = middle + 1;
}
if (flag)
  document.write("</br>value founded in position  " + position);
else
  document.write("</br>value not founded ");

最佳答案

middle value calculation.

 middle = Math.round(first + ((last - first) / 2)); 

//你的代码..

var array =[10,20,30,40,50,60,70,80,90,95,100,102,105,200,250,300,320,350] ;
var search= 20; //parseInt(prompt ("enter what you search for"));

var first=0, last=array.length-1, 
position=0,
middle ,
flag=false;

while((flag==false) && (first <=last)) {
 middle = Math.round(first + ((last - first) / 2)); //((first+last)/2); low + (last - low)/2
 if (array[middle]==search){
     flag=true;
     position=middle ;
 }else if(array[middle]>search) {
     last=middle-1 ;
 }
 else {
    first= middle+1;
 }

}
if (flag) 
document.write ("</br>value founded in position  "+position);
else
document.write("</br>value not founded ");

关于javascript - 为什么我的 javascript 显示值(value)不成立?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52670271/

相关文章:

javascript - TS2322和TS2495-具有ES6和ES5目标的迭代器

javascript - 单选按钮不起作用-AngularJS

c - 在几个 C 模块之间传递大数组

python - 是否可以使用 python 将磁盘上的不连续数据映射到数组?

C++二进制搜索以查找不动点的索引

javascript - 如何模拟 jasmine 中其他服务方法中调用的 $http.post 方法?

javascript - 使用 JavaScript 在 if 语句中设置变量抛出错误(已声明)

java - 数组和字符串

java - 二进制搜索算法的问题

c++ - 通过包含两个变量的键进行二进制搜索