算法篇(一)、二分查找 binary search

本文对比了简单查找和二分查找两种算法,详细解释了它们的时间复杂度。简单查找示例代码展示了线性搜索的过程,而二分查找则针对有序数组,通过不断缩小搜索范围实现更高效的查找,其时间复杂度为O(logn)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   在介绍二分查找之前先讲下简单查找,简单查找顾名思义 一个一个查找,基于线性表的查找,时间复杂度为O(n),说到时间复杂度大O,即大O表示法,它指出了算法有多快。例如:假设列表包含n个元素。简单查找需要检查每个元素,因此需要执行n次操作。使用大O表示法,这个运行时间为O(n)。运行时间?单位秒么?并非,大O表示法指的并非以秒为单位的速,它让你能够比较操作数,它指出了算法运行时间的增速。大O表示法最直接的理解就是表示:算法需要执行的操作数。

//简单查找
//O(n)
function easySearch(a, c) {
	if (!(a instanceof Array)) return "arr is not Array!";
	for (var b = 0; b < a.length; b++) if (a[b] == c) return b;
	return -1
}


//二分查找 binary search
//O(log n)
//有序数组 a
function binary(a, c) {
	if (!(a instanceof Array)) return "arr is not Array!";
	for (var b = 0, d = a.length - 1; b <= d;) {
		var e = Math.floor((b + d) / 2),
			f = a[e];
		if (f == c) return e;
		f < c ? b = e + 1 : d = e - 1
	}
	return -1
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值