文章目录
- 19.1.1顺序查找★
- 1.1.1查询某个元素是否存在
- 1.1.2查询元素在数组中索引
- 1.1.3 同1.1.2
19.1.1顺序查找★
顺序查找也称基本查找(数据可以没有任何顺序)
顺序查找适合于存储结构为数组或者链表。
基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线的一端开始,顺序扫描,依次将遍历到的结点与要查找的值相比较,若相等则表示查找成功;若遍历结束仍没有找到相同的,表示查找失败。
1.1.1查询某个元素是否存在
-
需求:定义一个方法利用基本查找,查询某个元素是否存在
数据如下:{131, 127, 147, 81, 103, 23, 7, 79}
public class SearcheTest {public static void main(String[] args) {//基本查找/顺序查找//从0索引开始挨个往后查找//需求:定义一个方法利用基本查找,查询某个元素是否存在//数据如下:{131, 127, 147, 81, 103, 23, 7, 79}int[] arr = {131, 127, 147, 81, 103, 23, 7, 79};int number = 7;boolean seachNumber = basicSearch(arr, number);System.out.println(seachNumber);}
//定义方法,查找数组中的元素是否存在public static boolean basicSearch(int[] arr ,int num){for (int i = 0; i < arr.length; i++) {if (arr[i] == num){return true;}}return false;}// main ending....
}
1.1.2查询元素在数组中索引
-
需求:定义一个方法利用基本查找,查询某个元素在数组中的索引
(不需要考虑数组中元素是否存在)
public class SearchTest02 {public static void main(String[] args) {int[] arr = {131, 127, 147, 81, 103, 23, 7, 79};int number = 127;int index = basicSearch(arr, number);System.out.println(index);//1}// 定义方法,判断数组中的元素所在索引,并将此元素所在索引返回public static int basicSearch(int[] arr ,int num){for (int i = 0; i < arr.length; i++) {if (arr[i] == num){// 返回索引return i;}}return -1;}
}
1.1.3 同1.1.2
-
需求:定义一个方法利用基本查找,查询某个元素在数组中的索引
(需要考虑数组中元素是否存在)
public class SearchTest03 {public static void main(String[] args) {int[] arr = {131, 127, 147, 81, 127, 23, 7, 79};int number = 127;ArrayList<Integer> list = basicSearch(arr, number);// 遍历索引所在的集合//1.增强for遍历//for (Integer integer : list) {// System.out.println(integer);// 1 4//}// 2.Lambda表达式遍历//list.forEach((Integer integer)-> System.out.println(integer));//3.普通for遍历for (int i = 0; i < list.size(); i++) {Integer it = list.get(i);System.out.println(it);//1 4}}// 定义方法,判断数组中的元素所在索引,并返回// 如果要返回多个数据,可以把这些数据添加到数组或者集合中
public static ArrayList<Integer> basicSearch(int[] arr ,int num){// 定义集合,存储相同元素所在的索引ArrayList<Integer> list = new ArrayList<>();for (int i = 0; i < arr.length; i++) {if (arr[i] == num){// 如果数组中找到这个元素,将此元素索引添加到集合中list.add(i);}}// 数组循环后,返回索引所在的集合return list;}
}