你能用javascript在字符串数组中进行二进制搜索吗
Can you do binary search in array of strings in javascript
我正在试着做一个单词查找的事情。问题有成千上万的单词。这将是很好的:
只搜索第一个字母,索引0处的字符,在数组中,获取关键字/值的索引,具有和搜索的关键字/值,索引1处的字符等。
如果可能的话我不想做什么。。。
转到array[i],获取其全部值,然后在索引0处找到char,然后说是或不是这样。这种方式胜过一切。如果我正在访问整个字符串,为什么不在访问时评估整个字符串呢?
也许我需要以不同的方式重组数组。所以主数组会像"var a=[a,b,c,…]然后a[a]=[a、b、c、d,e,…],依此类推,最后a[i][r][p][l][a][n][e]…"。。。也许这样更有效率。如果我不能访问数组中值的唯一第一个字符,而不首先了解整个内容(而不是分析),那么这可能是唯一可能的方法。
我认为你可以做到。你只需要对字符串数组进行排序,也许你可以将它们与字符值进行比较,例如A的65。
我还没有测试过,但这似乎是合法的:http://www.dweebd.com/javascript/binary-search-an-array-in-javascript/
也许我不明白你想做什么,但如果你能保持单词列表的排序,那么二进制搜索是最快、最有效的方法:
function binarySearch(list, key) {
let indexLow = 0;
let indexHigh = list.length - 1;
while (indexLow <= indexHigh) {
const mid = Math.floor((indexLow + indexHigh) / 2)
const x = list[mid]
if (x === key) {
return mid;
}
if (x > key) {
indexHigh = mid - 1;
} else {
indexLow = mid + 1;
}
}
return -1;
}
相关文章:
- Javascript 二进制搜索/插入预处理
- 如何在JavaScript中实现二进制搜索
- 在二进制搜索中找到目标时的猜测总数
- 使用 JavaScript,我如何执行将返回多个值的二进制搜索
- 访问节点的属性javascript二进制搜索树
- 为什么我的javascript二进制搜索出错
- 检查二进制搜索树是否为有效javascript
- 验证二进制搜索树-JavaScript
- JavaScript中的二进制搜索实现
- 你能用javascript在字符串数组中进行二进制搜索吗
- Javascript二进制搜索原型数组
- 二进制搜索JSON对象
- Javascript二进制搜索从0到100从用户输入
- 递归vs无递归在JS二进制搜索数组
- 我可以得到反馈我失败的二进制搜索实现
- 使用堆栈和队列的Javascript二进制搜索树
- JavaScript-二进制搜索树-inOrderTraverse()函数日志“;未定义的“;到控制台窗口
- 为什么这个二进制搜索实现会使浏览器无响应?
- Javascript中的二进制搜索
- 在搜索引擎中使用二进制搜索数据库