`

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项目:垃圾分类查询管理系统(java+SpringBoot+html+thymeleaf+maven+mysql)

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

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

    java下struts2学生成绩分类查询,使用标签,迭代,排序等,条理清晰,适合初学者学习使用,数据用集合录入。

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

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

    Java 1.6 API 中文 New

    JAVA开发人员必备!本文档是 Java Platform Standard Edition 6 的 API !Java 1.6 API的中文帮助文档。 深圳电信培训中心徐海蛟博士教学...org.omg.CORBA_2_3 CORBA_2_3 包定义对 Java[tm] Standard Edition 6 中现有...

    java jdk1.6/1.5 API查询手册(part3)

    Java JDK1.6/1.5 API查询手册,希望大家喜欢。由于有上传大小限制,共分四个part,仅第一个part收取2分

    java源码包2

     Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构,  当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...

    金山词霸java手机版

    金山出品:手机版金山词霸3.2版(JAR格式) 支持整句翻译+情景例句 ...Java通用版适用于所有非触屏分辨率为240*320,320*240 176*220的机型(支持Java的手机) 包括诺基亚S40,索爱,Moto,联想,天语等

    java socket查询数据库实现登录验证

    java socket查询数据库实现登录验证,分客户端和用户端两部分

    java源码包---java 源码 大量 实例

     Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构,  当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...

    java版通讯录管理系统

    ( 2)模糊查询,可以按:姓名、电话号码、手机、姓名的汉语拼音的声母 或全拼查询。支持模糊查询即输入部分数据后,可以查询出符合条件的全部条目。 如:输入“张”,列出所有名字中有“张”的条目;输入“ 2645...

    java jdk1.6/1.5 API查询手册(part2)

    Java JDK1.6/1.5 API查询手册,希望大家喜欢。由于有上传大小限制,共分四个part,仅第一个part收取2分

    java源码包4

     Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构,  当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...

    java源码包3

     Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构,  当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...

    java开源包2

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    JAVA上百实例源码以及开源项目源代码

     Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构,  当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...

    JAVA上百实例源码以及开源项目

     Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构,  当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...

    CRMEB Java外贸多商户版 v1.0

    CRMEB Java多商户外贸版商城系统支持中文、英文、法语等多语言切换,基础标签可以根据选择进行语言转换(更多语言持续更新中...)。 2、登录方式多样 系统提供有6种登录方式,可以使用邮箱账号、手机号登陆平台,也...

Global site tag (gtag.js) - Google Analytics