效率最高的查找方法-折半查找,也叫做二分法查找;可以在最短时间内找到一个数字在一个数组中的index定位,但有些时候我们需要实现一个不在数组中的值“将”位于已有数组中的第几位的场景,下面是我用JS实现的代码,对于折半查找的原理请百度或者google一下,当然360也是可以的。
// 计算index
var _myIndex = function(list, key) {
var low = 0;
var high = list.length - 1;
var mid;
var result = 0;
// 只有一个数字
if (low == high) {
if (list[0] > key) {
return 2;
} else {
return 1;
}
}
while (low <= high) {
mid = parseInt((low + high) / 2);
if (list[mid] > key) {
low = mid + 1;
if (low > high) {
result = mid + 1;
break;
}
;
} else if (list[mid] < key) {
high = mid - 1;
if (low > high) {
result = mid;
break;
}
;
} else {
result = mid;
break;
}
;
}
;// 循环结束
// 返回index
return result;
};
可以使用测试数组测一下:
var list = [1,3,5,7,9];
var key = 8;
有问题可以给我留言 更欢迎大家提BUG 希望对大家有帮助
分享到:
相关推荐
本文将详细介绍如何使用JavaScript实现折半查找算法来查找一个字符在有序数组中的位置。折半查找(也称为二分查找)是一种效率较高的查找算法,适用于已排序的数据集合。其基本原理是通过不断将查找区间对半分割,...
二分查找,也称为折半查找,是一种在有序数组中高效寻找特定元素的搜索算法。在大前端领域,虽然主要工作集中在用户界面和交互上,但随着技术的不断发展,对前端开发者的算法基础要求也在逐渐提高。二分查找是前端...
- 记事本作为数据库:在资源有限或者简单应用场景下,记事本可以作为简单的文本文件存储数据,但其查询效率低,不适合大数据量操作。 - 文件格式:可能采用CSV(逗号分隔值)或JSON(JavaScript对象表示法)格式...
二分查找法,又称折半查找,是一种在有序数组中搜索特定元素的高效算法。它通过不断缩小搜索范围,将查找的时间复杂度降低到O(log n)。在JavaScript中实现二分查找法,可以帮助我们快速定位数据,尤其适用于大数据量...
`@import`是CSS语法,只能在CSS内部使用,且需放在样式表文件的顶部,不支持浏览器缓存,但能实现CSS的按需加载。 3. PHP中的`serialize()`和`unserialize()`函数用于序列化和反序列化变量,使得变量能够在非PHP...
例如,有序表的折半查找,相较于无序表,其查找效率更高。在构建数据结构如二叉排序树、B-树和B+树时,排序也是一个不可或缺的过程。 在排序算法中,排序依据的数据项被称作“排序码”或“关键码”。关键码的重要性...