`

java版2分查询

阅读更多

/**
* 采用2分法实现有序数组的增删查
* 由于数组定义了大小就不能再改了 所以我们重新定义了size()方法;
* 将数据组成了一个对象
* @author leader
* 2009-11-3
*/
class Array
{
public static int maxsize ;//数组的长度的最大值
public static int realsize;
int [] array ;//数组
public Array (int maxsize)
{
  //初始化这个类
  this.maxsize  = maxsize;
  this.array = new int [this.maxsize];
  this.realsize = 0 ;
}
/**
  * 给数组添加数据
  */
public void insert (int ins)
{
  //当数组还有空间的时候才能往里面插入数据
  int len = this.realsize;
  if(len == maxsize)
  {
   System.out.println("数组已满");
  }
  //由于是有序数组 所以要给新添加进来的数字放到排序后的位置
  int i = 0;
  for ( ;i<this.realsize;i++)
  {
   if(array[i]>ins)
   {
    //插入的数字小于数组中的某个成员的时候 就可以放在这个数字的前面 应为他是有序的排列的
    break;
   }
  
  }
  //讲这个数据以后的数据向后一位 从最后开始移
  for (int j =this.realsize  ;j>i;j--)
  {
   array[j] = array[j-1];
  }
  array[i]=ins;//将插入的数字放在正确的位置
  this.realsize ++;//将数组长度加一
}
/**
  * 数组的大小只是给人看的
  * @return
  */
public int size ()
{
  return this.realsize;
}
public void display ()
{
  for (int i = 0 ;i<this.realsize;i++)
  {
   System.out.println(array[i]);
  }
}
public void delete (int del)
{
  int i = 0;
  for ( ;i<this.realsize;i++)
  {
   if(array[i]==del)
   { 
    break;
   }
  
  }
  for(int j = i;j<this.realsize;j++)
  {
   array[j]=array[j+1];
  }
  this.realsize--;
}
/**
用二分法找数字
**/
public void find (int find)
{
  int begin = 0;
  int end   = this.realsize;
 
  while (true)
  {
   int tem   = (begin+end)/2;
   if(array[tem]<find)
   {
    begin = tem + 1;

   }else if(array[tem]>find)
   {
    end = tem - 1;
   }
   else {
    System.out.println("find it @ "+tem);
    break;
   }
  }
 

 
}
}
public class Chape {
public static void main(String[] args) {
  Array array = new Array(100);
  array.insert(1);
  array.insert(9);
  array.insert(3);
  array.insert(5);
  array.insert(0);

  array.delete(1);
  array.display();
  System.out.println("数组长度"+array.size());

  array.find(9);

}

}
分享到:
评论

相关推荐

    JAVA使用线程池查询大批量数据

    2. **定义任务**:批量数据查询通常涉及数据库操作,我们可以将每个查询任务封装成一个`Runnable`或`Callable`对象,每个任务负责处理一部分数据。 ```java class QueryTask implements Runnable { private final ...

    java快速自定义查询实现

    【Java快速自定义查询实现】 Java自定义查询的实现旨在简化开发过程中对于复杂查询需求的处理,通过配置化的方式,让开发者能够快速构建查询界面和执行相应的SQL指令。以下是实现这一功能的关键步骤和细节: 1. **...

    Word2Vec java版实现

    - 在`Word2VEC_java-master`项目中,开发者通常会找到一个示例代码,演示如何加载数据、配置模型参数、训练模型以及使用模型进行预测或相似性查询。 7. **注意事项** - 训练大型数据集可能需要大量计算资源,因此...

    java语言的分页查询功能(mysql和sql server)

    本教程将详细讲解如何在Java中实现不分框架的分页查询,同时涵盖对MySQL和SQL Server数据库的支持。 一、基础知识 1. 分页概念:分页是将大量数据按一定数量分成若干部分,每次只加载一部分到内存中显示,用户可以...

    Java 版本 IP 数据库查询

    本文将详细讲解如何使用Java实现版本化的IP数据库查询,并结合提供的"IPData.txt"文件来理解这一过程。 首先,"IPData.txt"文件通常包含了IP地址与对应地理位置的映射数据,这种数据格式通常是CSV或特定定制的文本...

    基于Java的图书信息查询系统

    - **搜索算法**:查询操作可能涉及排序和搜索算法,如二分查找,以提高查询效率。 4. **用户界面** - **命令行接口**:最基本的实现可能通过控制台交互,用户通过输入指令进行操作,这涉及到Scanner类的使用来...

    (源码)基于Java的垃圾分类查询系统.zip

    # 基于Java的垃圾分类查询系统 ## 项目简介 本项目是一个垃圾分类查询系统,主要用于微信小程序。系统提供了垃圾分类查询功能,支持干垃圾、湿垃圾、有害垃圾和可回收物四类垃圾的查询。用户可以通过热门查询、抬...

    java一次性查询处理几百万数据解决方法

    ### Java一次性查询处理几百万数据解决方法 在Java开发中,处理大数据量是常见的需求之一,特别是当数据规模达到几百万级别时,如何高效、稳定地处理这些数据变得尤为重要。本文将详细介绍一种Java一次性查询处理几...

    java下struts2学生成绩分类查询,可按条件排序显示

    在这个“java下struts2学生成绩分类查询”项目中,开发者利用了Struts2的核心特性,实现了对学生成绩的高效查询、分类和排序功能。以下是对该项目相关知识点的详细说明: 1. **Struts2框架**:Struts2是Apache软件...

    java面试与高级查询宝典

    《Java面试与高级查询宝典》是一份涵盖了Java编程语言及Oracle数据库高级查询技术的综合学习资料。这份资源集合了两套完整的Java面试题库,旨在帮助求职者充分准备技术面试,同时也包含了丰富的Oracle数据库实战案例...

    Java项目:垃圾分类查询管理系统(java+SpringBoot+html+thymeleaf+maven+mysql)

    垃圾分类查询管理系统。共分为两种角色,管理员、普通用户。 管理员角色具有功能: 系统设置-用户管理、页面管理、角色管理; 我的-首页、搜索记录、我的收益; 贡献管理-贡献管理、随机数据、每日垃圾、贡献记录;...

    java学生成绩查询系统

    1. Java技术栈:系统主要基于Java SE(标准版)和Java EE(企业版)技术进行开发,利用其面向对象特性和丰富的类库支持。 2. JDBC:Java Database Connectivity是Java访问数据库的标准接口,用于连接数据库并执行SQL...

    基于java的寝室查询系统

    2. **Java Swing或JavaFX**:为了构建用户界面,开发者可能使用了Java的Swing库或JavaFX。Swing用于创建桌面应用程序,提供丰富的组件如JFrame、JButton、JTable等。JavaFX则提供更现代、更丰富的图形用户界面(GUI...

    拉普拉斯差分隐私java实现

    在Java环境中实现拉普拉斯差分隐私,我们需要理解其核心原理并熟悉Java编程语言。 拉普拉斯机制是差分隐私的一种常见实现方式,它的基本思想是在查询结果上添加拉普拉斯分布的随机噪声。差分隐私定义为:两个数据集...

    java实现TOP查询(java作业)

    在Java编程语言中,实现TOP查询,特别是在分布式环境中,是一个重要的任务,常见于大数据处理和数据分析。这个“java实现TOP查询”的作业来自东北大学软件学院的java期末项目,旨在让学生掌握分布式TOPK算法的基本...

    java二分查找实现

    * 数据库查询:在数据库中,二分查找可以用于快速查询某个元素。 * 文件搜索:在文件系统中,二分查找可以用于快速搜索某个文件。 * 算法设计:二分查找可以作为其他算法的组件,例如在快速排序中使用二分查找来确定...

    CRMEB【Java版】单商户商城系统v2.0.1(完整包)

    2. 添加完整的Crmeb-admin.jar和Cremb-front.jar启动和停止shell脚本 3. 修复文件导出可能出现错误的问题 4. 修复推广人列表可能存在数据不正确的问题 5. 修复获取默认地址唯一的问题 6. 优化Java项目删除历史日志 7...

    JAVA分片上传.zip

    - 设计一个用户友好的API接口,用于初始化上传任务、提交分片、查询上传进度和完成整个上传过程。 - API应该能够处理分片的上传顺序,以及对分片状态的管理。 8. **使用开源库**: - 开源库如Apache Commons IO...

    java大文件分片上传示例

    2. **计算分片数量**: 首先,我们需要计算文件总大小并根据分片大小确定需要的分片数量。这可以通过`File.length()`方法获取文件长度,然后除以分片大小得到。 3. **上传分片**: 使用HTTP的POST请求或者PUT请求...

Global site tag (gtag.js) - Google Analytics