Java经典算法汇总之顺序查找(Sequential Search)
概述
顺序查找法,又称线性查找法,是一种简单的查找方法,适用于线性表长度较小、存储结构不要求有序以及插入和删除操作较多的情况下。其基本思想就是将每一个记录逐一与查找关键字进行比较,直到找到了相等的记录为止,或者整个表扫描完毕也未找到。
算法实现
以下是Java实现顺序查找的代码示例:
/**
* 串行查找算法
* @param arr 查找的数组
* @param target 要查找的目标值
* @return 返回目标值在数组中的索引,若未找到则返回-1
*/
public static int sequentialSearch(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
示例说明
示例1
假设现有一个整数数组arr,包含以下几个元素:
[ 5, 9, 7, 3, 2, 8, 6 ]
现在要查找数字7在该数组中的位置。我们可以使用顺序查找法来解决此问题,使用上文提到的sequentialSearch
方法:
int[] arr = { 5, 9, 7, 3, 2, 8, 6 };
int target = 7; // 要查找的目标值
int index = sequentialSearch(arr, target); // 返回目标值在数组中的索引,若未找到则返回-1
if (index == -1) {
System.out.println("未找到目标值");
} else {
System.out.println("目标值在数组中的位置是:" + index);
}
此时输出结果为:
目标值在数组中的位置是:2
示例2
现在假设有一个数组arr,其中包含以下元素:
[ 18, 5, 12, 16, 7, 3, 10 ]
我们要查找数字13在该数组中的位置,由于该数字不在数组中,因此上述方法返回结果应该为-1。代码示例如下:
int[] arr = { 18, 5, 12, 16, 7, 3, 10 };
int target = 13; // 要查找的目标值
int index = sequentialSearch(arr, target); // 返回目标值在数组中的索引,若未找到则返回-1
if (index == -1) {
System.out.println("未找到目标值");
} else {
System.out.println("目标值在数组中的位置是:" + index);
}
此时输出结果为:
未找到目标值
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java经典算法汇总之顺序查找(Sequential Search) - Python技术站