java折半查找简述_折半查找(java版)
package com.yuan.alg;
/**
* @author yuan
*这个程序是演示折半查找的例子。
*该算法是用递归实现的。
*前提条件是该数组必须是有序的。
*/
public class a001 {
/**
*
*/
public a001() {
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] Array={1,4,5,7,8,9,10,90,99,100}; //有序数列
int findvalue=101; //查找值。
//调用递归二叉树查找方法,将结果返回给result。
int result=binarysearch(Array,0,Array.length-1,findvalue);
if(result!=-1) //如果有结果,输出结果。
{
System.out.println("该数的下标是:"+result);
System.out.println("/n该数是第"+(result+1)+"个数!");
}
else //否则,输出提示
System.out.println("该值不存在!");
}
/**
* binarysearch方法实现了折半查找的功能,也和二叉树查找相似。
* 这是一个递归二叉树查找,在性能上有待提高,查找速度很快,特别适合有序的
* 数列的查找。
* 该算法的主旨:通过比较中间数与目标值的大小来改变查找方向。
* 若中间数比目标值大,向前查找;反之,向后查找。
* 不断执行这个方法,即递归,直到中间数与目标值相等;反之,若没有匹配的数,则返回
* null。
*
* */
public static int binarysearch(int array[],int first,int last,int value)
{
int index;
if(first>last) //first>last,不符合查找的条件。
{
return -1;
}
else
{
int mid=(first+last)/2; //求mid的值,为查找提供条件。
if(value==array[mid]) //值与中间值匹配。
{
index=mid; //接受mid。
}
else if(value
return binarysearch(array,first,mid-1,value);
else //若大,则向后查找。
return binarysearch(array,mid+1,last,value);
}
return index; //返回一个index,即结果。
}
}
java折半查找简述_折半查找(java版)相关推荐
- 二分查找的平均查找长度_二分查找(折半查找)代码实现
整理不易,手有余香请点赞! 折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高.但是该算法的使用的前提是静态查找表中的数据必须是有序的. 在折半查找之前对查找表按照所查的关 ...
- 数据结构折半查找例题_数据结构查找习题及答案
第九章 查找 一. 选择题 1. 若查找每个记录的概率均等, 则在具有 n 个记录的连续顺序文件中采用顺序查找法查找一 个记录,其平均查找长度 ASL 为 ( ) . A . (n-1)/2 ...
- java rpm 安装路径_如何查找rpm方式安装的软件路径
首先要申明一下which java是定位不到安装路径的.which java定位到的是java程序的执行路径.网上的资料都是人云亦云,完全不去思考.那么怎么定位到java的安装路径呢?下面我们来看看例 ...
- java单链表例子_写一个java链表的例子?随便举例说一下。
展开全部 //单链表类 package dataStructure.linearList; import dataStructure.linearList.Node; //导入单链表结点类 impor ...
- java 内部类 加载_举例讲解Java的内部类与类的加载器
内部类 class A { //Inner1 要在 A 初始化后 才能使用,即要被A的对象所调用 class Inner1 { int k = 0; // static int j = 0; //A加 ...
- java整数的因式分解_如何在Java中找到整数的质数-因式分解
java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...
- python 查找算法_七大查找算法(Python)
查找算法 -- 简介 查找(Searching)就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素. 查找表(Search Table):由同一类型的数据元素构成的集合 关键字(Ke ...
- java加载机制_详解Java类加载机制
一:ClassLoader 从JVM结构图中可以看到,类加载器的作用是将Java类文件加载到Java虚拟机. HotSpot JVM结构,图片来自Java Garbage Collection Bas ...
- java 密码加密 盐_有效提高java编程安全性的12条黄金法则
安全性是软件开发中最复杂,最广泛和最重要的考量之一.Java是具有许多内置安全性功能的开发平台,java在长期的发展过程中,已经经过了很多高强度的安全测试,并经常更新安全漏洞.并且Java生态系统还包 ...
最新文章
- 利用BP神经网络教计算机识别语音特征信号(代码部分SL)
- wifi动不动就断开_手机信号满格,但是WIFI经常掉线!我来教你怎么办
- openssl在64位的机器上编译32位的库
- implementation ‘com.zxy.android:recovery:
- python代码需要背吗-20个Python代码段,你需要立刻学会,好用到哭!
- 计算机组成原理——程序查询方式、程序中断方式
- 远程服务器安装docker和docker-compose
- Java扑克牌(斗地主,手中牌的排序)【Comparator】
- 海量数据拆分到nosql系统的一种方案
- 简单的节流函数throttle
- D类IP地址和组播传输
- 优秀的电商精品素材就到优图
- 语音识别在生活中的七个经典应用
- 第三方服务挂了,如何保证服务不受影响?
- 【解决】UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xef in position 0: ordinal not in range(128
- 浙江卫视的万峰纯粹一烂人
- CentOS7 ECS使用(慕课网付费课笔记)
- 使用gltf-pipeline转换gltf、glb模型文件
- 基于微信小程序的个人健康打卡系统设计与实现-计算机毕业设计源码+LW文档
- python交通调查数据处理_Python突破高德API限制爬取交通态势数据+GIS可视化(超详细)...
热门文章
- c语言ascw,VBS中的Asc/AscB/AscW和Chr/ChrB/ChrW函数之间的区别
- Java错别字检查_java中关于异常的处理
- .net excel循环插数据_Python实战: 如何将数据从一个Excel文件移动到另一个?
- python tkinter 弹窗_Python:tkinter-Parent获取弹出窗口的返回值
- memache的使用场景
- native版本 修改项目react_react native项目改名(仅针对android)
- 在浏览器中进行深度学习:TensorFlow.js (十二)异常检测算法
- jsp中引入js文件缓存问题解决
- docker第二天:管理docker镜像与容器(上)
- 巧妙设备MTU的大小,轻松提网速