Java中实现线性搜索的函数
线性搜索就是从一个数组中线性、逐个查找每个元素,直到找到目标元素或查找完所有元素的过程。在Java中,实现线性搜索的函数相对比较简单,只需要使用for循环遍历数组即可。
下面我将介绍一种简单的实现方式。
代码实现
public static int linearSearch(int[] arr, int targetValue) {
for(int i=0; i<arr.length; i++) {
if (arr[i] == targetValue) {
return i; // 找到目标元素则返回其下标
}
}
return -1; // 找不到目标元素,则返回-1
}
其中,arr表示待搜索的整型数组,targetValue表示我们想要查找的目标元素。
该函数会从数组的第一个元素开始逐个遍历对比元素值是否等于目标元素值。如果找到目标元素,即 arr[i] == targetValue 为真时,返回元素的下标i;如果全部遍历完仍然没有找到目标元素,则函数返回-1。
代码说明
这里主要使用了for循环来遍历整个数组,用if语句来判断每个函数元素是否等于目标值。
1. 第1行
public static int linearSearch(int[] arr, int targetValue) {
这一行定义了一个公共静态函数,名称为linearSearch,它接收两个参数:一个整型数组arr和一个整型目标值targetValue。
2. 第2行
for(int i=0; i<arr.length; i++) {
这一行定义一个整型i变量,并使用for循环遍历整个数组arr。for循环的初始值为0,终止条件是已经遍历到最后一个数组元素,即i<arr.length。
3. 第3行
if (arr[i] == targetValue) {
该行代码在数组arr中找到目标元素时执行,并使用if语句来比较当前的元素是否等于目标元素targetValue。
4. 第4行
return i; // 找到目标元素则返回其下标
当找到目标元素时,返回该元素在数组中的下标i。
5. 第6行
return -1; // 找不到目标元素,则返回-1
当遍历完整个数组arr仍然没有找到目标元素时,返回-1,表示找不到目标元素。
测试代码
写完代码之后,我们需要进行测试以确保它能够正常运行。我们可以调用linearSearch函数来查找数组中的某些元素。
public static void main(String[] args) {
int[] arr = {6, 3, 8, 4, 9, 2, 1, 5, 7};
int target1 = 4;
int target2 = 10;
int index1 = linearSearch(arr, target1);
int index2 = linearSearch(arr, target2);
System.out.println("Target " + target1 + " is at index: " + index1);
System.out.println("Target " + target2 + " is at index: " + index2);
}
输出结果如下:
Target 4 is at index: 3 Target 10 is at index: -1
这说明我们在数组中成功找到了目标元素4,并返回它的下标3,而目标元素10并不存在于数组arr中,所以返回-1表示找不到该元素。
总结
在Java中实现线性搜索的函数相对来说比较简单,只需要用for循环遍历整个数组即可。这种算法虽然简单,但是在元素数比较多的情况下性能还是比较低的。因此,当我们需要频繁查找数组中的元素时,推荐使用二分查找算法。
