侧边栏壁纸
博主头像
新·都在博主等级

行动起来,活在当下

  • 累计撰写 168 篇文章
  • 累计创建 32 个标签
  • 累计收到 67 条评论

目 录CONTENT

文章目录

Java 中的两种查找算法方式

Carol
2023-02-02 / 0 评论 / 0 点赞 / 9 阅读 / 3319 字 / 正在检测是否收录...

Java 中的两种查找算法方式

线性查找

// 自定义成员方法来描述线性查找,要求在指定的数组中查找指定的元素并返回下标
public static int findOut(int[] arr, int data) {
	for (int i = 0; i < arr.length; i++) {
		if (data == arr[i]) {
			return i;
		} else {
			System.out.println("查找失败!没有该元素!");
		}
	}
	return -1;
}

二分查找

// 自定义成员方法来描述二分查找算法,要求在指定的数组中查找指定的元素并返回下标
public static int findBinary(int[] arr, int left, int right, int data) {
	// 数组中至少有一个元素时才需要查找
	if (left <= right) {
		// 1.计算中间元素的下标并记录
		int p = (left + right) / 2;
		// 2.使用目标元素与中间元素比较大小,若相等则直接返回当前下标表示查找成功
		if (data == arr[p]) {
			return p;
		}
		// 3.若目标元素小于中间元素,则去中间元素的左边查找,重复上述过程,使用递归
		else if (data < arr[p]) {
			return findBinary(arr, left, p - 1, data);
		}
		// 4.若目标元素大于中间元素,则去中间元素的右边查找,重复上述过程,使用递归
		else {
			return findBinary(arr, p + 1, right, data);
		}
	} else {
		return -1;
	}

}

main

public static void main(String[] args) {
	int[] arr = { 10, 20, 30, 40, 50, 60 };
	int num = 50;
	int len = arr.length;
	int p = findBinary(arr, 0, len, num);
	System.out.println("当前元素的下标在数组中的位置是:" + p);
}
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区