首页 > 编程语言 >扎实打牢数据结构算法根基,从此不怕算法面试系列之003 week01 02-03 代码实现线性查找法

扎实打牢数据结构算法根基,从此不怕算法面试系列之003 week01 02-03 代码实现线性查找法

时间:2023-04-16 17:22:44浏览次数:33  
标签:02 LinearSearch03 target int search 003 算法 data public

1、算法描述

在数组中逐个查找元素,即遍历。

2、思路原理

如算法描述,基本是最简单的代码块了,没有什么额外的原理。

3、初步的代码实现

线性查找法初步的代码实现:
package com.mosesmin.datastructure.week01.chap02;

/**
 * @Misson&Goal 代码以交朋友、传福音
 * @ClassName LinearSearch03
 * @Description TODO
 * @Author MosesMin
 * @Date 2023/4/13
 * @Version 1.0
 */
public class LinearSearch03 {

    public int search(int [] data,int target){
        for (int i = 0; i < data.length; i++)
            if (data[i] == target)
                return i;
        return -1;
    }

    public static void main(String[] args) {
        int [] data = {1,18,22,10,35};
        LinearSearch03 ls = new LinearSearch03();
        int res = ls.search(data,10);
        System.out.println(res);

        int res2 = ls.search(data,666);
        System.out.println(res2);
    }
}

将search方法修改为静态方法(用static关键字修饰即可)

package com.mosesmin.datastructure.week01.chap02;

/**
 * @Misson&Goal 代码以交朋友、传福音
 * @ClassName LinearSearch03
 * @Description TODO
 * @Author MosesMin
 * @Date 2023/4/13
 * @Version 1.0
 */
public class LinearSearch03 {

    public static int search(int [] data,int target){
        for (int i = 0; i < data.length; i++)
            if (data[i] == target)
                return i;
        return -1;
    }

    public static void main(String[] args) {
        int [] data = {1,18,22,10,35};
        int res = LinearSearch03.search(data,10);
        System.out.println(res);

        int res2 = LinearSearch03.search(data,666);
        System.out.println(res2);
    }
}

为了阻止其他类、其他用户创建LinearSearch03类对象,可以将类LinearSearch03的构造方法声明为私有的。


即:

private LinearSearch03(){}

完整的类代码:

package com.mosesmin.datastructure.week01.chap02;
/**
 * @Misson&Goal 代码以交朋友、传福音
 * @ClassName LinearSearch03
 * @Description TODO
 * @Author MosesMin
 * @Date 2023/4/13
 * @Version 1.0
 */
public class LinearSearch03 {

    private LinearSearch03(){}
    public static int search(int [] data,int target){
        for (int i = 0; i < data.length; i++)
            if (data[i] == target)
                return i;
        return -1;
    }

    public static void main(String[] args) {
        int [] data = {1,18,22,10,35};
        int res = LinearSearch03.search(data,10);
        System.out.println(res);

        int res2 = LinearSearch03.search(data,666);
        System.out.println(res2);
    }
}

至此,这个类在设计层面已经没有大的问题了。

4、运行结果

输入:数组data、目标元素target
运行结果:

mark

输出:target在data中的索引
查找的第1个目标元素10,它在数组中的索引为3;
查找的第2个目标元素666,它不存在于数组中,所以返回-1。

标签:02,LinearSearch03,target,int,search,003,算法,data,public
From: https://www.cnblogs.com/xlfcjx/p/17323638.html

相关文章

  • 由数据范围反推算法复杂度以及算法内容
    一般ACM时间限制是1-2秒这种情况下,c++代码操作次数控制在1e7~1e8下面给出在不同数据范围下,代码时间复杂度和算法如何选择1.n<=30,指数级别,dfs+剪枝,状态压缩dp2.n<=100=>O(n3),floyd,dp,高斯消元3.n<=1000=>O(n2),O(n2logn),dp,二分,朴素版Dijkstra,朴素版Prim、Bellman-Ford4.......
  • 西南民族大学 春季 2023 训练赛 7
    题目详情-L1-1人与神(pintia.cn)换成php直接输出(Toiterateishuman,torecursedivine.题目详情-L1-2两小时学完C语言(pintia.cn)voidsolve(){cin>>n>>k>>m;cout<<n-k*m<<endl;}题目详情-L1-3强迫症(pintia.cn)voidsol......
  • 2023.04.16 - TS编译之后的JS不具备校验功能
    TypeScript编译后的JavaScript文件并不具备类型检查的功能,因为JavaScript语言本身是动态类型、弱类型的,在运行时无法推断变量的类型,只能在编译时推断。而将TypeScript文件编译成JavaScript文件时,会把TypeScript中的类型声明和类型检查都去掉,只保留JavaScript代码,所以......
  • 【LBLD】田忌赛马背后的算法决策
    田忌赛马背后的算法决策870.优势洗牌classSolution{public:vector<int>advantageCount(vector<int>&nums1,vector<int>&nums2){intn=nums1.size();priority_queue<pair<int,int>,vector<pair<int,int>&......
  • 【CVE-2020-1938】Ghostcat 漏洞复现
    0x00漏洞概述Java是目前Web开发中主流的编程语言,而Tomcat是当前流行的Java中间件服务器之一,从初版发布到现在已经有二十多年历史,在世界范围内广泛使用。Ghostcat是由长亭发现的存在于Tomcat中的漏洞,由于TomcatAJP协议设计上存在缺陷,攻击者通过TomcatAJPConnect......
  • LeetCode 双周赛 102,模拟 / BFS / Dijkstra / Floyd
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,欢迎来到小彭的LeetCode周赛解题报告。昨晚是LeetCode双周赛第102场,你参加了吗?这场比赛比较简单,拼的是板子手速,继上周掉大分后算是回了一口血......
  • KubeSphere 社区双周报 | OpenFunction 支持 Dapr 状态管理 | 2023.03.31-04.13
    KubeSphere社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过commit的贡献者,并对近期重要的PR进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。本次双周报涵盖时间为:2023.03.31-2023.04.13。贡献者名单新晋KubeSphereCon......
  • 2023高效的mysql 随机语句 200万数据为例 用了 0.0030秒
    是的,如果数据表中有200万条记录,使用 ORDERBYRAND() 这种方式来随机选择记录会非常慢,因为MySQL需要对整个表进行排序,然后再返回指定数量的记录。这个过程需要消耗大量的时间和资源。为了提高效率,可以考虑使用其他方法来实现随机选择记录。以下是一些常用的方法:使用 WHER......
  • Dijkstra算法求最短路
    一、Dijkstra 只适用于单源最短路中所有边权都是正数的情况二、存储方式1、稠密图用邻接矩阵2、稀疏图用邻接表三、算法实现用一个dist数组保存源点到其余各个节点的距离,dist[i]表示源点到节点i的距离。将dist数组赋值为正无穷,dist[1]=0用......
  • 排序算法-归并排序
    归并排序MergeSort1.MergeSort介绍MergeSort是利用归并的思想实现的排序算法,该算法采用经典的分治策略(divide-and-conquer),是一种稳定的排序算法。分治法是将问题分(divide)为一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各个答案“修补”在一起,即分而治之......