有一些简单的算法引入了逻辑和数据结构的基本概念,而其他算法则旨在提高复杂性。
搜索算法对于在大量数据中查找信息非常有用,例如在电话簿或计算机上的文件中查找联系人。
从这个意义上说,本文旨在介绍涉及线性搜索和二分搜索算法的概念。
1。线性搜索
顺序扫描列表以查找元素 一个例子是在数组中搜索特定数字线性搜索算法,在叙述性陈述中,意味着有一个整数数组和一个将作为搜索参考的值,称为目标,它将作为输入参数。从这个意义上说,有一个函数接收这些值,首先它遍历该数组的每个位置,直到现有位置的最大大小,主要使用 for 来实现,然后使用 if,它条件是检查:每个位置的值是否等于目标。如果找到该值,该函数将返回该位置的索引,或者返回 -1,表示未找到情况。
使用 javascript 的示例是:1
2
3
4
5
6
7
8
function linearsearch(array, target) {
for (let i = 0; i < array.length; i++) {
if (array[i] === target) {
return i;
}
}
return -1;
}
2。二分查找
滚动浏览有序列表以查找元素一个示例是在数组中搜索特定数字二分搜索算法是一种更有效的算法形式,可以在排序数组中查找给定值。这是通过重复地将搜索范围一分为二来实现的,这使得它比大型数据集的线性搜索要快得多。二分查找的复杂度为 o(log n),而线性查找的复杂度为 o(n)。
作为 javascript 中的示例,我们有:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function binarySearch(array, target) {
let low = 0;
let high = array.length - 1;
while (low <= high) {
const middle = Math.floor((low + high) / 2);
if (array[middle] < target) {
low = middle + 1;
} else if (array[middle] > target) {
high = middle - 1;
} else {
return middle;
}
}
return -1;
}
以上就是算法:线性搜索和二分搜索的详细内容,更多请关注php中文网其它相关文章!