📜  Java搜索算法

📅  最后修改于: 2021-04-22 01:14:03             🧑  作者: Mango

搜索算法旨在检查元素或从存储该元素的任何数据结构中检索元素。根据搜索操作的类型,这些算法通常分为两类:

  1. 顺序搜索:在此顺序搜索列表或数组,并检查每个元素。例如:线性搜索。
  2. 间隔搜索:这些算法是专门为在排序的数据结构中搜索而设计的。这些类型的搜索算法比线性搜索有效得多,因为它们反复瞄准搜索结构的中心并将搜索空间分成两半。例如:二进制搜索。

线性搜索:想法是遍历给定的数组arr []并找到存在该元素的索引。步骤如下:

  • 令要搜索的元素为x
  • arr []的最左边的元素开始,然后将xarr []的每个元素一一比较。
  • 如果x与一个元素匹配,则返回该索引
  • 如果x与任何元素都不匹配,则返回-1。

下面是Java顺序搜索的实现:

Java
// Java program to implement Linear Search
  
class GFG {
  
    // Function for linear search
    public static int search(int arr[], int x)
    {
        int n = arr.length;
  
        // Traverse array arr[]
        for (int i = 0; i < n; i++) {
  
            // If element found then
            // return that index
            if (arr[i] == x)
                return i;
        }
        return -1;
    }
  
    // Driver Code
    public static void main(String args[])
    {
        // Given arr[]
        int arr[] = { 2, 3, 4, 10, 40 };
  
        // Element to search
        int x = 10;
  
        // Function Call
        int result = search(arr, x);
        if (result == -1)
            System.out.print(
                "Element is not present in array");
        else
            System.out.print("Element is present"
                             + " at index "
                             + result);
    }
}


输出:
Element is present at index 3


时间复杂度: O(N)
辅助空间: O(1)