/**
* 数组的曾删改查
* Create by Administrator
* 2018/6/8 0008
* 上午 9:54
**/
public class HighArray {
private long[] a; private int nElems; public HighArray(int max){
a = new long[max];
nElems = 0;
} /**
* 使用二分查找法
* @param searchKey
* @return
*/
public int findOne(long searchKey){
// 数组的第一个
int lowerBound = 0;
// 数组的最后一个
int upperBound = nElems - 1;
// 数组的一半,下标
int curIn;
while (true){
curIn = (lowerBound + upperBound) / 2;
//判断这个数是不是数组的对半curIn是否相等
if(a[curIn] == searchKey){
return curIn;
}else if(lowerBound > upperBound){ //如果成立 测范围已经不存在了
return nElems;
}else {
//如果成立 则将范围设置curIn的后半部分,反之就设置为前半部分
if(a[curIn] < searchKey){
lowerBound = curIn + 1;
}else {
upperBound = curIn - 1;
}
}
}
} public boolean find(long searchKey){
int j;
for(j = 0; j < nElems; j++){
if(a[j] == searchKey){
break;
}
}
if (j == nElems){
return false;
}else {
return true;
}
} public void insert(long value){
a[nElems] = value;
nElems++;
} /**
* 保存排序
* @param value
*/
public void save(long value){
int j;
for (j=0; j<nElems; j++){
if(a[j] > value){
break;
}
}
for (int i = nElems; i > j; i--) {
a[i] = a[i-1];
}
a[j] = value;
nElems++;
} public boolean delete(long value){
int j = findOne(value);
// for(j = 0; j < nElems; j++){
// if(a[j] == value){
// break;
// }
// }
if (j == nElems){
return false;
}else {
for (int i = j; i < nElems; i++) {
a[i] = a[i+1];
}
nElems--;
return true;
}
} public void show(){
for (int i = 0; i < nElems; i++) {
System.out.print(a[i]+ " ");
}
System.out.println("");
} public static void main(String[] args) { HighArray array = new HighArray(100); array.save(10);
array.save(3);
array.save(2);
array.save(11);
array.save(9);
array.save(5);
array.save(4);
array.save(2);
array.save(7); array.show();
long num = 0;
System.out.println("查找结果"+num+":"+ array.find(num)); array.delete(2);
array.delete(5);
array.delete(8); array.show(); }

  

java学习之—数组的曾删改查的更多相关文章

  1. java对xml文件做增删改查------摘录

    java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...

  2. Shell数组的增删改查

    Shell数组的增删改查 shell数组的定义及取值: a=(1 2 3) [root@bogon tmp]# echo ${a[*]}  1 2 3 [root@bogon tmp]# echo $ ...

  3. python学习之-成员信息增删改查

    python学习之-成员信息增删改查 主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证,#!/usr/bin/env p ...

  4. 使用java对sql server进行增删改查

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  5. Java API实现Hadoop文件系统增删改查

    Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...

  6. EF学习笔记-1 EF增删改查

    首次接触Entity FrameWork,就感觉非常棒.它节省了我们以前写SQL语句的过程,同时也让我们更加的理解面向对象的编程思想.最近学习了EF的增删改查的过程,下面给大家分享使用EF对增删改查时 ...

  7. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

    前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...

  8. Java项目——模拟电话薄联系人增删改查

    该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作. 菜单类:Menu -- 用来封装主菜单和个选项的子菜单 Person类: Person--联系人的实体类 TelNoteRe ...

  9. JDBC基础学习(一)—JDBC的增删改查

    一.数据的持久化     持久化(persistence): 把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,数据持久化意味着将内存中的数据保存到硬盘上加以固化,而持久化的实现过程大多通过各 ...

随机推荐

  1. 使用c#封装海康SDK出现无法加载 DLL“..\bin\HCNetSDK.dll”: 找不到指定的模块

    最近在研究网络摄像头的二次开发,测试了一款海康威视的网络摄像头,程序调试的时候,出现如题的报错. 调试随机自带的demo时,程序运行正常,但当把该程序引入到我自己的程序中时,就开始报错.根据开发软件包 ...

  2. Spring将Bean导入IOC容器

    @Import 注解可以普通类导入到 IoC容器中. 想要让一个普通类接受 Spring 容器管理,有以下方法 使用 @Bean 注解 使用 @Controller @Service @Reposit ...

  3. linux普通用户提权操作

    [root@test1 ~]# vim /etc/sudoers ## Allow root to run any commands anywhere root ALL=(ALL) ALLzhouyu ...

  4. springboot使用lettuce连接池

    springboot对连接池的使用非常智能,配置文件中添加lettuce.pool相关配置,则会使用到lettuce连接池,并将相关配置设置为连接池相关参数,(前提是这些参数是springboot配置 ...

  5. flask 单元测试

    程序开发过程中,代码是为了完成需求,当代码编译通过后,能不能保证功能的正常实现,需要我们编写测试代码,模拟程序运行过程,检验功能是否符合预期. 单元测试主要面向一些功能单一的模块进行. 单元测试,实际 ...

  6. Python全栈开发之路 【第十五篇】:jQuery的介绍和选择器

    本节内容 什么是jQuery? write less,do more. jQuery是一个快速,小巧,功能丰富的JavaScript库. 它通过易于使用的API在大量浏览器中运行,使得HTML文档遍历 ...

  7. python第一章:简介与安装--小白博客

    Python简介 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项 ...

  8. A short Glimpse to Spectral Sequences 快速入坑谱序列(英文)

    In this short paper with a few of page (but a lot of language mistake), I want to introduce the theo ...

  9. jQuery实现Ajax请求时,页面显示等待的效果,超过指定请求时间后,进行其他操作

    背景:有一个按钮,点击之后向后端程序发起Ajax请求,在请求结果没有返回之前,页面显示等待的效果,此时仍旧是异步请求,等待的效果在接收到结果后撤销. 需求:因为网络延迟或者后端程序的问题,在发起Aja ...

  10. Svn基本操作

    日常开发中使用到的Svn基本操作 svn      https://tortoisesvn.net/ https://www.visualsvn.com/server/download/   1. 检 ...