/**
* 数组的曾删改查
* 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. js 文件引用传递参数

    每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code (function() {var hm = document.createElement(&q ...

  2. 使用pkg打包Node.js应用的方法步骤

    Node.js应用不需要经过编译过程,可以直接把源代码拷贝到部署机上执行,确实比C++.Java这类编译型应用部署方便.然而,Node.js应用执行需要有运行环境,意味着你需要先在部署机器上安装Nod ...

  3. 003_webpack 配合babel 将es6转成es5

    今天接触了webpack,第一次使用webpack进行转码,竟然稀里糊涂就成功了,哈哈. 下面附上流程 创建个文件夹,初始化一下,首先全局安装webpack npm install webpack - ...

  4. day26 Python isinstance和issubclass

    isinstance(obj,cls)检查是否obj是否是类 cls 的对象 issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object) ...

  5. SWAP_JOIN_INPUTS Oracle Hint(处理hash join强制大表(segment_size大)作为被驱动表)

    SWAP_JOIN_INPUTS Oracle Hint(处理hash join强制大表(segment_size大)作为被驱动表) swap_join_inputs是针对哈希连接的hint,它的含义 ...

  6. koa2中间件koa和koa-compose源码分析原理(一)

    koa是基于nodejs平台的下一代web开发框架,它是使用generator和promise,koa的中间件是一系列generator函数的对象.当对象被请求过来的时候,会依次经过各个中间件进行处理 ...

  7. 环境部署(一):Linux下安装JDK

    自动化测试的主要目的是为了执行回归测试.当然,为了模拟真实的用户操作,一般都是在UAT或者生产环境进行回归测试. 为了尽量避免内网和外网解析对测试结果的影响,将自动化测试服务部署在外网的服务器是比较好 ...

  8. PHP中静态变量和函数引用返回

    这两天看看PHP写的框架CI,源代码中写了很多静态变量和函数引用. 官方文档地址:http://php.net/manual/zh/language.references.return.php 简单写 ...

  9. C# 设置最顶层窗口。TopMostWindow

    code: namespace LOLMM { /// <summary> /// Interaction logic for MainWindow.xaml /// </summa ...

  10. odoo11 systemd service自动启动配置

    在ubuntu 16.04的环境下配置odoo11 跟随系统开机时自动启动的配置步骤: 1.在/etc/systemd/system/目录下建立odoo11.service文件 cd /etc/sys ...