首页 > Java > java教程 > 正文

Java查找实例:二分法查找元素的方法(代码)

不言
发布: 2018-08-21 14:20:06
原创
2784人浏览过

本篇文章给大家带来的内容是关于Java查找实例:二分法查找元素的方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

二分法查找原理思路:

搜索数据与 有序数组 中间元素比较以确定在中间元素左边还是右边,如果在右边,则调整最小搜索索引值,然后进入下次循环;如果在左边,则调整最大搜索索引值,然后进入下次循环;如果相等则当前位置就是查找数据所在位置,停止循环;

注意:

因为是根据数组元素之间的大小关系来查找元素的,所以数组必须是有序的数组,而且升序(从小到大)与降序(从大到小)的代码也会不同。本篇以升序为例。

public class Dichotomy {
	
	public static void main(String[] args) {
        int [] array = {1,2,3,4,5};
        int target = 2;//即array[1]
        
        int low = 0;
	int high = array.length - 1;
	while (low <= high) {
	    int middle = (low + high) / 2;
	    if (target > array[middle]) {
	    low = middle + 1;
	    } else if (target < array[middle]) {
		    high = middle - 1;
	    } else {
		    System.out.println(middle);
		    break;
	    }
	}
    }
}
登录后复制

下为运行结果:

立即学习Java免费学习笔记(深入)”;

如果是无序数组用二分法来查找元素,先给数组排序即可。比如用冒泡排序法来排序升序(从小到大)。

下为具体代码:

public class Dichotomy {
	
	public static void main(String[] args) {
        int [] array = {3,2,5,1,4};
        //排序
        int temp = 0;
		for (int time = 1; time < array.length; time++) {
			for (int i = 0; i < array.length-time; i++) {
				if (array[i+1]<array[i]) {
					temp = array[i+1];
					array[i+1] = array[i];
					array[i] = temp;
				}
			}
		}
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}

        //二分法查找
        int target = 2;//即array[1]
        int low = 0;
        int high = array.length - 1;
		
        while (low <= high) {
	        int middle = (low + high) / 2;
	        if (target > array[middle]) {
	        low = middle + 1;
	        } else if (target < array[middle]) {
		        high = middle - 1;
	        } else {
		        System.out.println(middle);
		        break;
	        }
        }
    }
}
登录后复制

下为运行结果:

立即学习Java免费学习笔记(深入)”;


相关推荐:

java算法中的关于二分查找和折半查找的实例详解

java实现二叉查找树的示例代码

以上就是Java查找实例:二分法查找元素的方法(代码)的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号