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

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。

posted @ 2023-04-16 17:18  皿哥的技术人生  阅读(102)  评论(0)    收藏  举报