详解顺序查找算法原理与使用方法

顺序查找算法详细讲解

顺序查找算法也叫线性查找算法,是一种基本的查找算法,主要用于在一个无序的集合中查找某个元素。顺序查找算法逐一扫描整个集合,直至找到目标元素为止。

算法过程

顺序查找算法的核心思想是遍历整个集合,查找目标元素。它的具体操作步骤如下:

  1. 遍历整个集合,从第一个元素开始逐一扫描
  2. 如果当前元素等于目标元素,则直接返回该元素的下标
  3. 如果遍历至集合末尾仍未找到目标元素,则返回查找失败的标记

代码实现

以下是一个简单的顺序查找算法的实现,假设要查找的值为 target,待查找的集合为 arr

/**
 * 顺序查找算法
 * @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

假设有一个长度为 10 的整数型数组 arr,其中包含以下元素:[2, 5, 1, 8, 7, 6, 3, 9, 4, 0]。现在要查找元素 7 是否在数组中,可以使用顺序查找算法实现。

int[] arr = {2, 5, 1, 8, 7, 6, 3, 9, 4, 0};
int target = 7;

int index = sequentialSearch(arr, target);

if (index != -1) {
    System.out.println("目标元素在集合中,下标为 " + index);
} else {
    System.out.println("目标元素不在集合中");
}

上述代码输出结果为:“目标元素在集合中,下标为 4”。

示例 2

假设有一个长度为 5 的字符串数组 arr,其中包含以下元素:[“apple”, “orange”, “banana”, “mango”, “watermelon”]。现在要查找元素 “grape” 是否在数组中,同样可以使用顺序查找算法实现。

String[] arr = {"apple", "orange", "banana", "mango", "watermelon"};
String target = "grape";

int index = sequentialSearch(arr, target);

if (index != -1) {
    System.out.println("目标元素在集合中,下标为 " + index);
} else {
    System.out.println("目标元素不在集合中");
}

上述代码输出结果为:“目标元素不在集合中”。