package com.js.ai.modules.pointwall.testxfz;
class OrdArray{
private long[] a;
private int nElems;
public OrdArray(int max) {
a=new long[max];
nElems=0;
}
public int size(){
return nElems;
}
//插入方法
public void insert(long value){
int j;
for(j=0;j<nElems;j++){
if(a[j]>value)
break;
}
for(int k=nElems;k>j;k--){
a[k]=a[k-1];
}
a[j]=value;
nElems++;
} //删除方法
public boolean delete(long value){
int j=find(value);
if(j==nElems){
return false;
}else {
for(int k=j;k<nElems;k++){
a[k]=a[k+1];
}
nElems--;
return true;
}
} //二分查找
public int find(long searchKey){
int lowerBound=0;
int upperBound=nElems-1;
int curIn;
while(true){
curIn=(lowerBound+upperBound)/2;
if(a[curIn]==searchKey){
return curIn;
}else if(lowerBound>upperBound){
return nElems;
}else {
if(a[curIn]<searchKey){
lowerBound=curIn+1;
}else {
upperBound=curIn-1;
}
}
}
} public void display(){
for(int j=0;j<nElems;j++){
System.out.print(a[j]+" ");
}
System.out.print("");
}
}
public class OrdArrayTest {
public static void main(String[] args) {
int maxSize=100;
OrdArray arr;
arr=new OrdArray(maxSize);
arr.insert(77);
arr.insert(00);
arr.insert(11);
arr.insert(22);
arr.insert(88);
arr.insert(99);
arr.insert(33);
arr.insert(55);
arr.insert(44);
arr.insert(66);
int searchKey=55;
if(arr.find(searchKey)!=arr.size()){
System.out.println("Found:"+searchKey);
}else {
System.out.println("can not found:"+searchKey);
}
arr.display();
arr.delete(00);
arr.delete(55);
arr.delete(99);
System.out.println("\r\n===");
arr.display();
}
}

  

最新文章

  1. NoSQL和MongoDB
  2. &lt;把时间当做朋友&gt;读书笔记
  3. Office 365 系列五 -------- Imap邮箱迁移步骤
  4. JAVA学习中Swing概述中的JFrame学习
  5. gdb调试多线程程序总结
  6. 【转】java静态代码块和构造方法执行顺序
  7. Eclipse自动插件依赖的一种配置解决方式
  8. word-wrap,white-space和text-overflow属性
  9. 安装MyEclipse Color Themes
  10. sql中如何分割字符串
  11. cve-2017-8464 复现 快捷方式远程代码执行
  12. 个人作业(2)---英语学习APP案例分析
  13. [C#学习笔记1]用csc.exe和记事本写一个C#应用程序
  14. 如何在 windows server 2008 上面 挂载NFS
  15. Date类型与字符串之间的转换
  16. loj#2565. 「SDOI2018」旧试题(反演 三元环计数)
  17. Bootstrap3基础 pagination 分页按钮 简单示例
  18. js-杂记
  19. day77
  20. jenkins systemctl启动失败

热门文章

  1. anjular2以及微信小程序的一点比较
  2. HDU 2273
  3. 人生苦短之我用Python篇(XML模块)
  4. [IC]Lithograph(0)半导体制造的基本过程
  5. 【剑指offer】数组中的逆序对。C++实现
  6. 【剑指offer】之字形打印二叉树,C++实现
  7. iOS常识名词解释 2016/04/05
  8. Vim:基础
  9. HDU2825 Wireless Password 【AC自动机】【状压DP】
  10. HashMap,LinkedHashMap,TreeMap之间的区别