Skip to content

Commit bbf4495

Browse files
author
haiji.yang
committed
add SeqSearch 🆕 📖
1 parent 17c1dfc commit bbf4495

File tree

4 files changed

+91
-0
lines changed

4 files changed

+91
-0
lines changed

note/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@
4747
- [🔖 选择排序](java/datastructureAlgorithm/book/algorithm/sort/SelectSort.md)
4848
- [🔖 插入排序](java/datastructureAlgorithm/book/algorithm/sort/InsertSort.md)
4949
- [🔖 希尔排序](java/datastructureAlgorithm/book/algorithm/sort/DonaldShell.md)
50+
##### [查找算法](java/datastructureAlgorithm/README.md)
51+
- [🔖 线性查找](java/datastructureAlgorithm/book/algorithm/search/SeqSearch.md)
5052
## [🔖 三.Java 并发实战与并发设计模式](java/concurrency/README.md)
5153
- [🔖 Util](java/concurrency/README.md)
5254
- [🔖 ExecutorService指南](java/concurrency/util/ExecutorService指南.md)

note/java/datastructureAlgorithm/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,7 @@
1919
- [🔖 选择排序](book/algorithm/sort/SelectSort.md)
2020
- [🔖 插入排序](book/algorithm/sort/InsertSort.md)
2121
- [🔖 希尔排序](book/algorithm/sort/DonaldShell.md)
22+
##### [查找算法](README.md)
23+
- [🔖 线性查找](book/algorithm/search/SeqSearch.md)
2224

2325

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
## 线性查找算法
2+
3+
### 介绍
4+
5+
线性查找又称顺序查找,是一种最简单的查找方法,它的基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的K值相等,则查找成功;若比较结果与文件中n个记录的关键字都不等,则查找失败。
6+
7+
查找是对具有相同属性的数据元素(记录)的集合(数据对象)进行的,称之为表或文件,也称字典。对表的查找,若仅对表进行查找操作,而不能改变表中的数据元素,为静态查找;对表除了进行查找操作外,还可能对表进行插入或删除操作,则为动态查找。
8+
9+
由此也可以看出其时间复杂度为 O(N)
10+
11+
### 示例
12+
13+
有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值。
14+
15+
```java
16+
public class SeqSearch {
17+
public static void main(String[] args) {
18+
int[] array = {1,8, 10, 89, 1000, 1234};
19+
20+
int i = seqSearch(array, 89);
21+
if(i == 1){
22+
System.out.println("array 中查到目标数据");
23+
}else {
24+
System.out.println("array 中未查到目标数据");
25+
}
26+
27+
}
28+
29+
/**
30+
*
31+
* @param array 目标数据
32+
* @param num 需要查询的数据
33+
*/
34+
private static int seqSearch(int[] array, int num) {
35+
// flag = 1 表示查找到 ,否则为为查找到
36+
int flag = 0;
37+
for (int i = 0; i < array.length-1; i++) {
38+
if (num == array[i]) {
39+
flag = 1;
40+
break;
41+
}
42+
}
43+
return flag;
44+
}
45+
}
46+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.javayh.advanced.java.algorithm.search;
2+
3+
/**
4+
* <p>
5+
* 线性查找
6+
* </p>
7+
*
8+
* @author Dylan
9+
* @version 1.0.0
10+
* @since 2020-12-28 8:01 PM
11+
*/
12+
public class SeqSearch {
13+
public static void main(String[] args) {
14+
int[] array = {1,8, 10, 89, 1000, 1234};
15+
16+
int i = seqSearch(array, 809);
17+
if(i == 1){
18+
System.out.println("array 中查到目标数据");
19+
}else {
20+
System.out.println("array 中未查到目标数据");
21+
}
22+
23+
}
24+
25+
/**
26+
*
27+
* @param array 目标数据
28+
* @param num 需要查询的数据
29+
*/
30+
private static int seqSearch(int[] array, int num) {
31+
// flag = 1 表示查找到 ,否则为为查找到
32+
int flag = 0;
33+
for (int i = 0; i < array.length-1; i++) {
34+
if (num == array[i]) {
35+
flag = 1;
36+
break;
37+
}
38+
}
39+
return flag;
40+
}
41+
}

0 commit comments

Comments
 (0)