扎实打牢数据结构算法根基,从此不怕算法面试系列之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
运行结果:
输出:target在data中的索引
查找的第1个目标元素10,它在数组中的索引为3;
查找的第2个目标元素666,它不存在于数组中,所以返回-1。