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();
	}
	
	
}

  

原文地址:https://www.cnblogs.com/airycode/p/5129870.html