![](/img/trans.png)
[英]ES6 How to convert key, value pair to string recursively in javascript?
[英]Binary Search Recursively using Javascript ES6
我正在尝试使用Javascript递归实现二进制搜索。
假设数组已排序。
函数签名可以如下所示:
BinarySearchRecursively (ArrayGiven, x, p, r)
其中ArrayGiven是一个数组,x是我们要查找的数字。 p是开始索引,r是结束索引。
任何Jsbin / Jsfiddle链接将不胜感激。
这是我的实现方式。 在顶部的注释中实现了psedo代码。
这是js bin: https : //jsbin.com/womenov/3/edit? js,console任何反馈将不胜感激。
/**
* Binary Search using Recursion
* p.......q........r : range where p is start, r is end
* Assume the array is sorted.
* Procedure BinarySearchRecursively(ArrayGiven, x, p, r, q = 0)
* if(p > r) return -1
* q = Math.floor((p+r)/2)
* if(x === ArrayGiven[q]) return q
* else if(x > ArrayGiven[q]) set p = q+1
* return BinarySearchRecursively(ArrayGiven, x, q + 1, r)
* else r = q-1 return BinarySearchRecursively(ArrayGiven, x, p, q-1)
*
*/
function BinarySearchRecursively (ArrayGiven, x, p, r, q = 0) {
if (p > r) {
return -1;
}
q = Math.floor((p+r)/2);
if (x === ArrayGiven[q]) {
return q;
}
if (x > ArrayGiven[q]) {
return BinarySearchRecursively(ArrayGiven, x,q+1, r);
}
return BinarySearchRecursively(ArrayGiven, x, p,q-1);
}
const TestArray = [2, 6, 8, 9, 11, 15];
console.log(`Given Element is at position : ${BinarySearchRecursively(TestArray, 2, 0,5)}`);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.