搜索算法
顺序搜索
顺序或线性搜索是最基本的搜索算法。它的机制是,将每一个数据结构中的元素和我们要找的元素做比较。顺序搜索是最低效的一种搜索算法。 以下是其实现: // 定义顺序搜索函数 this.sequentialSearch = function(item){ // 遍历整个数组 for (var i=0; i < array.length; i++){ // 如果数组中的当前元素与搜索的项相同 if (item === array[i]) return i; // 返回元素的索引 } return -1; // 如果未找到则返回-1 }; 顺序搜索迭代整个数组,并将每个数组元素和搜索项作比较。如果搜索到了,算法将用返回值来标示搜索成功。
二分搜索
二分搜索算法的原理和猜数字游戏类似,就是那个有人说“我正想着一个1到100的数字”的游戏。我们每回应一个数字,那个人就会说这个数字是高了、低了还是对了。 这个算法要求被搜索的数据结构已排序。以下是该算法遵循的步骤。 (1) 选择数组的中间值。 (2) 如果选中值是待搜索值,那么算法执行完毕(值找到了)。 (3) 如果待搜索值比选中值要小,则返回步骤1并在选中值左边的子数组中寻找。 (4) 如果待搜索值比选中值要大,则返回步骤1并在选种值右边的子数组中寻找。 以下是其实现: // 定义二分搜索函数 this.binarySearch = function(item){ this.quickSort(); // 开始前先对数组进行排序 var low = 0, // 定义低指针 high = array.length - 1, // 定义高指针 mid, element; // 当低指针小于等于高指针时,执行循环 while (low <= high){ mid = Math.floor((low + high) / 2); // 计算中间索引 element = array[mid]; // 获取中间元素的值 if (element < item) { // 如果中间元素的值小于搜索的值 low = mid + 1; // 更新低指针 } else if (element > item) { // 如果中间元素的值大于搜索的值 high = mid - 1; // 更新高指针 } else { return mid; // 返回中间元素的索引 } } return -1; // 如果未找到则返回-1 };
分类:
javaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通