/**
* 采用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);
}
}
分享到:
相关推荐
2. **定义任务**:批量数据查询通常涉及数据库操作,我们可以将每个查询任务封装成一个`Runnable`或`Callable`对象,每个任务负责处理一部分数据。 ```java class QueryTask implements Runnable { private final ...
【Java快速自定义查询实现】 Java自定义查询的实现旨在简化开发过程中对于复杂查询需求的处理,通过配置化的方式,让开发者能够快速构建查询界面和执行相应的SQL指令。以下是实现这一功能的关键步骤和细节: 1. **...
- 在`Word2VEC_java-master`项目中,开发者通常会找到一个示例代码,演示如何加载数据、配置模型参数、训练模型以及使用模型进行预测或相似性查询。 7. **注意事项** - 训练大型数据集可能需要大量计算资源,因此...
本教程将详细讲解如何在Java中实现不分框架的分页查询,同时涵盖对MySQL和SQL Server数据库的支持。 一、基础知识 1. 分页概念:分页是将大量数据按一定数量分成若干部分,每次只加载一部分到内存中显示,用户可以...
本文将详细讲解如何使用Java实现版本化的IP数据库查询,并结合提供的"IPData.txt"文件来理解这一过程。 首先,"IPData.txt"文件通常包含了IP地址与对应地理位置的映射数据,这种数据格式通常是CSV或特定定制的文本...
- **搜索算法**:查询操作可能涉及排序和搜索算法,如二分查找,以提高查询效率。 4. **用户界面** - **命令行接口**:最基本的实现可能通过控制台交互,用户通过输入指令进行操作,这涉及到Scanner类的使用来...
# 基于Java的垃圾分类查询系统 ## 项目简介 本项目是一个垃圾分类查询系统,主要用于微信小程序。系统提供了垃圾分类查询功能,支持干垃圾、湿垃圾、有害垃圾和可回收物四类垃圾的查询。用户可以通过热门查询、抬...
### Java一次性查询处理几百万数据解决方法 在Java开发中,处理大数据量是常见的需求之一,特别是当数据规模达到几百万级别时,如何高效、稳定地处理这些数据变得尤为重要。本文将详细介绍一种Java一次性查询处理几...
在这个“java下struts2学生成绩分类查询”项目中,开发者利用了Struts2的核心特性,实现了对学生成绩的高效查询、分类和排序功能。以下是对该项目相关知识点的详细说明: 1. **Struts2框架**:Struts2是Apache软件...
《Java面试与高级查询宝典》是一份涵盖了Java编程语言及Oracle数据库高级查询技术的综合学习资料。这份资源集合了两套完整的Java面试题库,旨在帮助求职者充分准备技术面试,同时也包含了丰富的Oracle数据库实战案例...
垃圾分类查询管理系统。共分为两种角色,管理员、普通用户。 管理员角色具有功能: 系统设置-用户管理、页面管理、角色管理; 我的-首页、搜索记录、我的收益; 贡献管理-贡献管理、随机数据、每日垃圾、贡献记录;...
1. Java技术栈:系统主要基于Java SE(标准版)和Java EE(企业版)技术进行开发,利用其面向对象特性和丰富的类库支持。 2. JDBC:Java Database Connectivity是Java访问数据库的标准接口,用于连接数据库并执行SQL...
2. **Java Swing或JavaFX**:为了构建用户界面,开发者可能使用了Java的Swing库或JavaFX。Swing用于创建桌面应用程序,提供丰富的组件如JFrame、JButton、JTable等。JavaFX则提供更现代、更丰富的图形用户界面(GUI...
在Java环境中实现拉普拉斯差分隐私,我们需要理解其核心原理并熟悉Java编程语言。 拉普拉斯机制是差分隐私的一种常见实现方式,它的基本思想是在查询结果上添加拉普拉斯分布的随机噪声。差分隐私定义为:两个数据集...
在Java编程语言中,实现TOP查询,特别是在分布式环境中,是一个重要的任务,常见于大数据处理和数据分析。这个“java实现TOP查询”的作业来自东北大学软件学院的java期末项目,旨在让学生掌握分布式TOPK算法的基本...
* 数据库查询:在数据库中,二分查找可以用于快速查询某个元素。 * 文件搜索:在文件系统中,二分查找可以用于快速搜索某个文件。 * 算法设计:二分查找可以作为其他算法的组件,例如在快速排序中使用二分查找来确定...
2. 添加完整的Crmeb-admin.jar和Cremb-front.jar启动和停止shell脚本 3. 修复文件导出可能出现错误的问题 4. 修复推广人列表可能存在数据不正确的问题 5. 修复获取默认地址唯一的问题 6. 优化Java项目删除历史日志 7...
- 设计一个用户友好的API接口,用于初始化上传任务、提交分片、查询上传进度和完成整个上传过程。 - API应该能够处理分片的上传顺序,以及对分片状态的管理。 8. **使用开源库**: - 开源库如Apache Commons IO...
2. **计算分片数量**: 首先,我们需要计算文件总大小并根据分片大小确定需要的分片数量。这可以通过`File.length()`方法获取文件长度,然后除以分片大小得到。 3. **上传分片**: 使用HTTP的POST请求或者PUT请求...