簡體   English   中英

這種算法叫做線性搜索嗎?

[英]is this algorithm called linear search?

說,我試圖找到數組中最大的元素,並按如下方式編寫一些代碼。

public class LargestElement
{
    public static void main(String[] args)
    {
        int[] a = {1,2,6,4,5,4,3,1};

        int max = a[0];
        for(int i = 1;i<a.length;i++)
        {
            if(a[i] > max)
                max = a[i];
        }

        System.out.println(max);
    }
}

這叫做線性搜索嗎?

由於算法在集合中找到最高值,因此稱為線性選擇算法 ,而不是線性搜索算法。 這與搜索算法不同, 搜索算法查找特定值。

不,它不是線性搜索 ,因為您不是在尋找此數組中的元素,而是查找此數組中的最大值。 總是檢查數組的所有元素,而線性搜索算法在找到特定值(您正在搜索的值)時終止。 然而,該算法的復雜性確實是線性的( 這里有關於復雜性的更多細節)。

引用問題中也包含的“線性搜索”標記的描述:

線性搜索或順序搜索是一種用於在列表中查找特定值的方法,該方法包括一次一個地按順序檢查其每個元素, 直到找到所需的元素。 線性搜索是最簡單的搜索算法。 其最壞情況成本與列表中元素的數量成正比。

如果你想知道什么是線性搜索,上面的答案很好,只是一個補充,然后看起來像這樣

import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.Scanner;
class LargestElement
{
    public static void main(String[] args)
    {
        Scanner s = new Scanner(System.in);

        int ele= s.nextInt();
        int[] a = {1,2,6,4,5,4,3,1};

        for(int i = 0;i<a.length;i++)
        {
            if(a[i] ==ele)
                {
                        System.out.println("Element Found at : "+ (i+1)+" Position");
                }
        }

    }
}

它是我編輯它的代碼,只是線性搜索數組中的給定值,在這種情況下我從控制台獲取它。 在搜索方面存在差異(如用於排序數組),還有許多其他搜索算法,但最基本的搜索算法是線性搜索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM