代码如下:
package 数组;
public class OrderArray {
private int[] a;
private int nElems;
public OrderArray(int maxSize){
a = new int[maxSize];
nElems=0;
}
public int size(){
return nElems;
}
public int binaryFind(int seValue){
int low = 0;
int high = nElems-1;
int cur;
while(true){
cur = (high-low)/2;
if(a[cur]==seValue)
return cur;
else if(low<high)
return nElems;
else{
if(a[cur]<seValue)
low = cur+1;
else
high = cur-1;
}
}
}
public void insert(int 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(int value){
int j = binaryFind(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 j=0;j<nElems;j++)
{
System.out.println(a[j]);
}
}
}
package 数组;
public class BFTest {
public static void main(String[] args){
int maxSize = 100;
OrderArray arr;
arr = new OrderArray(maxSize);
arr.insert(77);
arr.insert(99);
arr.insert(44);
arr.insert(55);
arr.insert(22);
arr.insert(88);
arr.insert(11);
arr.insert(00);
arr.insert(66);
arr.insert(33);
int searchKey = 55;
if(arr.binaryFind(searchKey) != arr.size())
System.out.println("Found"+ searchKey);
else
System.out.println("can't find"+ searchKey);
arr.display();
arr.delete(00);
arr.delete(55);
arr.delete(99);
arr.display();
}
}