二分查找(Binary Search)
创始人
2024-03-17 05:28:12
0

二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列

查找步骤:首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

public class 二分查找 {public static void main(String[] args) {int[] arr = {1,15,24,35,54,56,64,68,72,75,90};//	二分查找:查找68是否在数组中boolean flag = Binary_search1(arr, 0, arr.length-1, 68);System.out.println(flag);//	二分查找一个大于等于X的最小值int min_x = Binary_search2(arr, 0, arr.length-1, 23);System.out.println(min_x);//	二分查找一个小于等于x的最大值int x_max = Binary_search3(arr, 0, arr.length-1, 73);System.out.println(x_max);}//	二分查找:查找68是否在数组中private static boolean Binary_search1(int[] arr, int left, int right, int x) {int i = left;int j = right;while(i <= j) {int mid = (i + j) >> 1;if(arr[mid] == x) {return true;}else if(arr[mid] < x){i = mid + 1;}else {j = mid - 1;}}return false;}//	二分查找一个大于等于X的最小值private static int Binary_search2(int[] arr, int left, int right, int x) {int i = left;int j = right;while(i < j) {int mid = i + j >> 1;if(arr[mid] < x) {i = mid + 1;}else {j = mid;}}return arr[j];}//	二分查找一个小于等于x的最大值private static int Binary_search3(int[] arr, int left, int right, int x) {int i = left;int j = right;while(i < j) {int mid = i + j >> 1;if(arr[mid] > x) {j = mid - 1;}else {i = mid ;}}return arr[i];}}

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...