/**
* 采用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下struts2学生成绩分类查询,使用标签,迭代,排序等,条理清晰,适合初学者学习使用,数据用集合录入。
2. 添加完整的Crmeb-admin.jar和Cremb-front.jar启动和停止shell脚本 3. 修复文件导出可能出现错误的问题 4. 修复推广人列表可能存在数据不正确的问题 5. 修复获取默认地址唯一的问题 6. 优化Java项目删除历史日志 7...
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查询手册,希望大家喜欢。由于有上传大小限制,共分四个part,仅第一个part收取2分
Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...
金山出品:手机版金山词霸3.2版(JAR格式) 支持整句翻译+情景例句 ...Java通用版适用于所有非触屏分辨率为240*320,320*240 176*220的机型(支持Java的手机) 包括诺基亚S40,索爱,Moto,联想,天语等
java socket查询数据库实现登录验证,分客户端和用户端两部分
Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...
( 2)模糊查询,可以按:姓名、电话号码、手机、姓名的汉语拼音的声母 或全拼查询。支持模糊查询即输入部分数据后,可以查询出符合条件的全部条目。 如:输入“张”,列出所有名字中有“张”的条目;输入“ 2645...
Java JDK1.6/1.5 API查询手册,希望大家喜欢。由于有上传大小限制,共分四个part,仅第一个part收取2分
Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...
Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...
淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...
Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...
Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket...
CRMEB Java多商户外贸版商城系统支持中文、英文、法语等多语言切换,基础标签可以根据选择进行语言转换(更多语言持续更新中...)。 2、登录方式多样 系统提供有6种登录方式,可以使用邮箱账号、手机号登陆平台,也...