`

1.3二分查找

 
阅读更多
package array;


/**
 * 二分查找算法
 * @author 杨伦亮
 * 1:14:41 AM
 */
public class HighArray2 implements Find{
	private long[] a;
	private int nElement;
	
	/**构建函数*/
	public HighArray2(int max) {
		System.out.println("注意:必须是规则有序的队列!");
		a = new long[max];
		nElement = 0;
	}
	/*
	 * (non-Javadoc)
	 * @see array.Find#find(long)
	 */
	public Object find(long searchValue)throws Exception{
		int lowerPoint=0;
		int upperPoint=nElement-1;
		int curIn,time=0;
		try{
			while(true){
			curIn=(lowerPoint+upperPoint)/2;
			if(a[curIn]==searchValue) return curIn;
			else if(lowerPoint>upperPoint) return nElement;
			else {
				if(a[curIn]<searchValue){
					lowerPoint=curIn+1;
				}else{
					upperPoint=curIn-1;
				}
			}
			time++;	
		}

		}catch (Exception e) {
		}finally{
			System.out.println("run Times:"+time);
		}
		throw new Exception("can't find");
	}
	/**增加值*/
	public void insert(long value){
		a[nElement]=value;
		nElement++;
	}
	
	public int getSize(){
		return nElement;
	}
	
	/**删除指定值*/
	public boolean delete(long value){
		int j;
		for (j = 0; j < nElement; j++) {
			if(a[j]==value){
				break;
			}
		}
		if(j==nElement){
			return false;
		}else {
			for (int k = j; (k+1) < nElement; k++) {
				a[k]=a[k+1];
			}
			nElement--;
			return true;
		}
	}
	/**显示*/
	public void display(){
		for (int i = 0; i<nElement; i++) {
			System.out.print(a[i]+" ");
		}
		System.out.println();
	}
/**
  * @param args
  */
 public static void main(String[] args) throws Exception{
  // TODO Auto-generated method stub
  // TODO Auto-generated method stub
  int maxSize=100;
  HighArray2 array=new HighArray2(maxSize);
  
  for (int i = 0; i < maxSize; i++) {
   array.insert(i);
  }
  array.display();
  int searchValue=35;
  Object object=array.find(searchValue);
  System.out.println(searchValue+" Fount at \t"+object.toString());
  
 }
}

 

分享到:
评论

相关推荐

    五月算法精选合集.pdf

    #### 1.3 二分查找模板 文档提供了二分查找的一个模板,代码如下: ```python def binary_search(list, item): low = 0 high = len(list) - 1 while low mid = int((low + high) / 2) guess = list[mid] if ...

    二级公共基础知识

    1.3 二分查找法 二分查找法是一种在有序数组中查找特定元素的高效算法。它通过不断将搜索区间减半,快速定位目标元素。二分查找的时间复杂度为O(log n),适用于大量数据的快速检索。 1.4 冒泡排序法 冒泡排序是一种...

    数据结构与算法 全 数据结构与算法全 Java

    **1.3 二分查找** - **基础版**:二分查找是在有序数组中查找指定元素的高效算法。它通过不断将搜索区间减半来缩小搜索范围,直至找到目标元素或确定不存在。 - **改变版**:在基本二分查找的基础上,可以通过调整...

    JAVA中工具类Arrays和异常处理的实例操作.doc

    ##### 1.3 二分查找(`Arrays.binarySearch()`) `Arrays.binarySearch()`方法可以实现高效的二分查找。这种方法要求数组事先已经排序。该方法返回查找元素在数组中的索引位置,如果未找到则返回负数。 **示例代码...

    数据结构 查找.

    根据给定的信息,本文将对数据结构中的查找技术进行详细解析,主要聚焦于两种常见的查找方法:顺序查找和二分查找。这两种查找方法是数据结构与算法领域中的基础且重要的概念,广泛应用于各种编程场景中。 ### 一、...

    CMMI1.3域说明

    本文档分为三个主要部分: • 第一部分:关于CMMI开发模型 ...• 附录C:CMMI版本1.3项目的参加者,包含参加CMMI-DEV 1.3版开发的团队成员名单。 • 附录D:术语表,定义了CMMI-DEV中使用的很多术语。

    推箱子求解V1.3(附源码C++/MFC)

    V1.3 新增了以下功能: 1.动画移动小人, 可用鼠标或键盘移动小人和箱子 2.调试工具条,可以显示坐标等...7.为了减少内存使用,用自增长二分查找的数组代替std::map. 8.下载不需要分数. 注:V1.1以后版本不支持V1.0的文件.

    56770行业信息网 v1.3

    1.按行业索引:按企业分类查找企业,亦可按 一级分类+省份 或 一级分类+二级分类+省份 或 一级分类+省份+市县或 一级分类+二级分类+省份+市县 的组合方式来查找企业。 2.按地区索引:按企业所在省市查找企业,亦可按...

    计算机二级公共基础知识

    1.3 栈 1. 栈的基本概念 栈(stack)是一种特殊的线性表,是限定只在一端进行插入与删除的线性表。 在栈中,一端是封闭的,既不允许进行插入元素,也不允许删除元素;另一端是开口的,允许插入和删除元素。通常称...

    CS1807-U201814745-朱槐志1

    这个问题的关键在于如何高效地进行查找,我们采用了二分查找法,大大提高了效率。 1.3 已做但未AC的题目 虽然我尝试了多个解决方案,但POJ2503题目尚未完全解决。这可能是因为我在设计算法时遇到了一些挑战,或者在...

    25175 档案管理系统 v1.3

    对于文件属性,如名称、描述、标签等,用户可以随时进行调整,以便更好地管理和查找文件。 除了上述基本功能,此系统可能还包括以下特性: - **权限管理**:支持设置不同用户的访问权限,比如读取、写入和删除,...

    eSyndiCat v1.3 简体汉化版

    对于开发者而言,这是一个宝贵的资源,他们可以通过源代码了解程序的工作原理,进行二次开发,以满足特定的需求或集成到现有的网站架构中。源码的开放性也使得社区能够共享各种插件和模版,丰富了程序的可扩展性。 ...

    ip2region-1.3-release.zip

    - **快速查询**:ip2region利用二分搜索算法,能够在毫秒级别内完成IP地址到地理位置的映射查询,显著提高了查询效率。 - **离线定位**:无需依赖互联网,只需将数据库文件存储在本地,即可进行IP地址的定位,确保...

    WebSenB2B电子商务系统WebSen!NT v1.3.rar

    二,企业会员主要功能 1、发布修改招聘信息 2、对人才库的简历进行筛选,修改,审核,删除 3、修改注册资料 4、查找人才 三,后台管理员主要功能 1、对企业发布的招聘信息管理 2、对人才发布的求职信息管理 ...

    算法第四版-PDF-网盘链接

     1.1.10 二分查找 28  1.1.11 展望 30  1.2 数据抽象 38  1.2.1 使用抽象数据类型 38  1.2.2 抽象数据类型举例 45  1.2.3 抽象数据类型的实现 52  1.2.4 更多抽象数据类型的实现 55  1.2.5 ...

    在线文档搜囤王V1.3

    3)系统提智能挖掘算法可以帮助您从大量分档中找出最符合的文档,节省您的阅读、下载效率; 4)文档的各种属性可以一目了然,如下载费用、文档大小、网友评分、下载量、网友评价等; 5)搜索文档结果可以直接在线...

    概念c语言程序设计.ppt

    以二分查找为例,这是一种基于分治策略的经典算法,适用于有序数据集合的搜索。 在二分查找中,我们需要在一个已排序的列表中寻找特定元素。算法通过不断将搜索范围减半来加速查找过程。初始时,选择列表中间的元素...

    第9单元 基本算法-2020.06.09.rar

    二分查找在有序数组中高效,而哈希查找通过散列函数实现近乎即时的查找,但需要额外的空间来存储哈希表。 3. **图算法**:图是表示对象之间关系的数据结构,常见算法有深度优先搜索(DFS)和广度优先搜索(BFS),...

    Esuper 超级文件管理器1.3.7.1高级版.rar

    Esuper超级文件管理器1.3.7.1高级版是一款专为安卓设备设计的专业工具,它提供了一整套强大且易用的功能,帮助用户更有效地组织、查找和管理手机中的文件。 首先,Esuper超级文件管理器的核心功能是文件浏览与操作...

Global site tag (gtag.js) - Google Analytics