0
点赞
收藏
分享

微信扫一扫

【Java笔记】线性查找与二分法查找

小_北_爸 2022-03-11 阅读 90

数组中有很多算法应用,今天来看一看简单的查找算法。

线性查找

线性查找就是地毯式查找,算法简单,但是时间复杂度也高

public class Test {
	public static void main(String[] args) {
	String[] names = new String [] {"雪之下雪乃","绫小路清隆","Saber","樱岛麻衣"};
	String name = "Saber";
	boolean isFlag = true;
	for(int i = 0;i < names.length;i++) {
		if(name.equals(names[i])) { // equals 为Java指定方法,用来判断值是否相等
			System.out.println("找到了指定元素,位置为:" + i);
			isFlag = false;
			break;
			}
		}
	if(isFlag == true) {
		System.out.println("很遗憾没找到");
		}
	}
}

>>> 找到了指定元素,位置为:2

二分法查找

前提:所要查找的数组必须有序

public class Test {
	public static void main(String[] args) {
	int[] arr = new int[] {-5,-1,1,4,5,6,7,8};
	int dest = 1; // 查找 1 的索引
	boolean isFlag = true;
	int head = 0; // 初始的首索引
	int end = arr.length - 1; // 初始的末索引
	while(head <= end) {
		int middle = (head + end)/2;
		if (dest == arr[middle]) {
			System.out.println("找到了指定元素,位置为:" + middle);
			isFlag = false;
			break;
		}else if(arr[middle] > dest) {
			end = middle - 1;
		}else { // arr[middle] < dest
			head = middle + 1;
		}
	}
	if (isFlag) {
		System.out.println("很遗憾没找到");
	}
	}
}

>>> 找到了指定元素,位置为:2
举报

相关推荐

0 条评论