Java中的线性搜索是最简单的搜索算法之一,它有助于按顺序搜索列表中的元素。但是,线性搜索很少使用,因为其他算法(例如二分搜索算法)与线性搜索相比,哈希表允许更快的搜索。对每个项目执行顺序搜索,即检查每个项目,如果找到匹配项,则返回该项目;否则,搜索将继续,直到数据收集结束。 Java中有一些方法可以实现线性搜索操作。让我们通过几个例子来深入研究这个线性搜索以及它是如何在 Java 中逐步实现的。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
由于搜索算法没有可用的语法,因此将会有一种算法可以帮助我们在任何编程语言中实现线性搜索算法。
算法:
第1步:首先,我们需要获取数组的长度
第2步:获取要搜索的元素并将其存储在变量中
第 3 步: 现在,将数组的每个元素与可搜索值进行比较
第 4 步: 如果有的话,有匹配项。然后,找到可搜索的元素
第 5 步: 如果没有,即没有找到匹配项。然后,找不到可搜索元素,如果给定
,则返回-1我们将按照上述算法步骤通过示例手动实现线性搜索算法,然后进入编程示例。
示例:
设数组 A[4,8,2,3,6,9]
设可搜索元素X=3;
4 | 8 | 2 | 3 | 6 | 9 |
这是要搜索X=3的数组;
以编程方式完成线性搜索时,我们需要数组的长度。
从第一个元素开始
4 | 8 | 2 | 3 | 6 | 9 |
所以这里 X=3 = 4
与其他元素比较
4 | 8 | 2 | 3 | 6 | 9 |
所以这里 X=3 = 8
我们,将会,前进到下一个元素,
4 | 8 | 2 | 3 | 6 | 9 |
所以这里 X=3 = 2
会继续前进,
4 | 8 | 2 | 3 | 6 | 9 |
所以这里 X=3 = 3
将返回元素的索引并返回。该元素的索引为 3
如果直到数组末尾都没有找到元素,则返回-1,即未找到。
线性搜索算法
class LinearSearchAlgorithm { static int LSA(int array[], int length, int x) { for (int i = 0; i < length; i++) { if (array[i] == x) return i; } return -1; } public static void main(String[] args) { int[] array = { 4, 8, 2, 3, 6, 9 }; int length = array.length; int x = 3; int index = LSA(array, length, x); if (index == -1) System.out.println("Element not found in the array"); else System.out.println("Element is found at index " + index); } }
输出:
import java.util.Scanner; class LSA { public static void main(String args[]) { int length, k, i, array[]; Scanner input = new Scanner(System.in); System.out.println("Enter length of the array:"); length = input.nextInt(); array = new int[length]; System.out.println("Enter " + length + " elements"); for (i = 0; i < length; i++) { array[i] = input.nextInt(); } System.out.println("Enter the value to be searched:"); k = input.nextInt(); for (i = 0; i < length; i++) { if (array[i]== k) { System.out.println(k+" is found at index "+(i)); break; } } if (i == length) System.out.println(k + " is not found in the array"); } }
输出 1:
下面是 STDIN 命令提示符中给出的输入,
不。数组元素数:6
数组元素:2, 4, 6, 8, 10, 1
可搜索值:4
输出 2:
不。数组元素数:8
数组元素:3, 5, 7, 9, 10, 34, 25, 21
可搜索值:10
输出 3:如果未找到元素
不。元素数量:5
数组元素:2、4、5、6、10
可搜索值:9
由于线性搜索算法很少使用,其他搜索算法如哈希表和二分搜索可以实现快速搜索。线性搜索的时间复杂度如下:
如果在数组中找到元素:O(n) 到 O(1)
如果在数组中找不到元素:O(n) 到 O(n/2)
至此,我们的主题“Java 中的线性搜索”就结束了。我们已经通过示例了解了线性搜索算法是什么及其实现步骤。还以编程方式解决了示例并显示了各种输出,即元素何时可用以及元素何时不可用。还看到了基于可搜索值(如果找到或未找到)的线性搜索算法的时间复杂度。谢谢!快乐学习!!
以上是Java 中的线性搜索的详细内容。更多信息请关注PHP中文网其他相关文章!