Java有序数组的实现

时间:2023-03-10 00:41:45
Java有序数组的实现
package 有序数组;

public class OrdArray {

	private long[]array;
private int nElems;
//初始化
public OrdArray(int max){
array = new long[max];
nElems = 0;
}
//返回数组中的大小
public int size(){
return nElems;
}
//查找的方法的实现
public int find(long searchKey){
int lowerBound = 0;
int upperBound = nElems-1;
int curIn;
while (true) {
curIn = (lowerBound+upperBound)/2;
if (array[curIn] == searchKey) {
return curIn;
} else if (lowerBound > upperBound) {
return nElems;
} else {
if (array[curIn] < searchKey) {
lowerBound = curIn+1;
} else {
upperBound = curIn-1;
}
} } } //插入方法的实现
public void insert(long value) {
int j = 0;
for (j = 0;j<nElems;j++) {
if (array[j] > value) {
break;
}
}
//移动元素找到要插入的位置
for (int k = nElems;k>j;k--) {
array[k] = array[k-1];
}
array[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++) {
array[k] = array[k+1];
}
nElems--;
return true;
}
}
//打印有序数组中的元素的值
public void display(){
for (int i = 0;i<nElems;i++) {
System.out.print(array[i]+" ");
}
System.out.println();
} }