有序数组的二分法查询、删除、插入java代码
来源:互联网 发布:万彩动画大师 知乎 编辑:程序博客网 时间:2024/05/18 00:11
使用有序数组的好处是查找的速度快了很多,假设一个N维数组,无需情况下查找平均为N/2次,而在有序情况下使用二分法,查询次数为log2(N)次。
//升序数组的插入、删除和查找操作public class OrdArray { private long[] a; private int nElems; public OrdArray(int max){ a=new long[max]; nElems=0; } public int size(){ return nElems; } //二分法查询 public int find(long searchKey){ int lowBound=0; int upperBound=nElems-1; int curIn; while(true){ curIn=(lowBound+upperBound)/2; if(a[curIn]==searchKey){ return curIn; }else if(lowBound>upperBound){ return nElems; }else{ if(a[curIn]<searchKey){ lowBound=curIn+1; }else{ upperBound=curIn-1; } } } } //插入 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 void display(){ for(int i=0;i<nElems;i++){ System.out.println(a[i]+" "); } }}
0 0
- 有序数组的二分法查询、删除、插入java代码
- java 数组插入,二分法
- 有序数组用二分法查询位置
- (笔记)数组 插入式排序法 有序查找二分法
- (二)有序数组的二分法查找
- 有序数组的二分法查找关键字
- 有序数组的查询
- 二分法查找有序数组
- 有序数组搜索二分法
- 有序数组和二分法
- 二分法查找有序数组
- 二分法查找有序数组
- 有序数组和二分法
- Java代码实现删除一个有序数组里面的重复元素
- java二分法实现在有序的数组中定位某数在数组中的位置
- 对于一个有序的数组,如果要插入一个元素并保证数组还有序, 问如何获取该元素位置。用二分法
- JAVA数组的应用(插入数字仍保持有序)
- Java有序数组插入数据的三种方法
- 使用Log4j时,为什么要写if (log.isDebugEnabled()) 或 if (log.isInfoEnabled())
- java类库以及组织结构(API)
- 内存共享和qsort
- ubuntu14.04安装搜狗输入法-无法显示搜狗输入法问题
- 【Maven】创建的Maven Web工程无法部署到服务器
- 有序数组的二分法查询、删除、插入java代码
- J2EE:servlet 数据库操作
- JS面向对象理解
- JVM内存模型
- 【Java】注解
- Java提供的部分常用包
- 分解质因数
- gcc结构体对齐
- hdoj-2017-字符串统计(解题报告)