Java中的线性搜索

一.介绍

在本文中,我们将讨论或描述 Java 线性搜索。这是最简单的搜索方法。在此方法中,在列表中按顺序搜索要搜索的元素。此方法可应用于已排序或未排序的列表。

二.线性搜索(顺序搜索)

列表/数组的顺序搜索从列表/数组的开头开始,一直持续到找到该项目或搜索完整个列表/数组为止。线性 搜索(又称顺序搜索)是所有算法中最基本、最重要的算法。它易于理解和实现。

下图说明了线性搜索的实际工作方式。

三.线性搜索算法

步骤1:将搜索元素放入关键元素中并在列表中开始搜索。

System.out.print("\nEnter Search Key : ");  
System.out.flush();  
try  
{  
    BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));  
    str = obj.readLine();  
    key = Integer.parseInt(str);  
}  

第 2 步:将此键元素与数组或列表的开头匹配,并逐一增加。

for (int i = 0; i < size; i++{  
        if (seaArr[i] == key)  
            return (i + 1);  
    }  

步骤3:当键元素与数组或列表索引的元素匹配时,返回索引号。

步骤 4:如果增量到达链接或数组的末尾并且未找到匹配项,则返回“未找到”等消息。

例子
import java.io.*;  
class search  
{  
    String str;  
    int key, size, seaArr[];  
    public void getdata()  
    {  
        System.out.print("Enter how many data you want to enter : ");  
        System.out.flush();  
        try  
        {  
            BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));  
            str = obj.readLine();  
            size = Integer.parseInt(str);  
            seaArr = new int[size];  
            for (int i = 0; i < size; i++)  
            {  
                System.out.print("Enter element at " + (i + 1) + "th position  :  ");  
                System.out.flush();  
                str = obj.readLine();  
                seaArr[i] = Integer.parseInt(str);  
            }  
        } catch (Exception e)  
        {  
            System.out.println(e);  
        }  
    }  
    public int LinSrch()  
    {  
        System.out.println("=====LINEAR SEARCH=====\n");  
        getdata();  
        System.out.print("\nEnter Search Key : ");  
        System.out.flush();  
        try  
        {  
            BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));  
            str = obj.readLine();  
            key = Integer.parseInt(str);  
            for (int i = 0; i < size; i++)  
            {  
                if (seaArr[i] == key)  
                    return (i + 1);  
            }  
        } catch (Exception e)  
        {  
            System.out.println(e);  
        }  
        return (0);  
    }  
}  
class Linear  
{  
    public static void main(String args[])  
    {  
        search o1 = new search();  
        int result;  
        result = o1.LinSrch();  
        if (result == 0)  
            System.out.println("\nSearch Not Found");  
        else  
            System.out.println("\nSearch is Located at " + result + " Position");  
    }  
}  
输出

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢.锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值