日期:2014-05-20 浏览次数:20936 次
class DataArray01 {
private long[] arr;
private int elements;
public DataArray01(int max) {
arr = new long[max]; // 这里忘记语法了!
elements = 0;
}
/**
* find 方法
* @param search
* @return
*/
public int find(long search) {
int minbound = 0;
int maxbound = elements - 1;
while (true) {
/* 下面这句一定要写在while内部 */
int curin = (minbound + maxbound) / 2;
if (arr[curin] == search) {
return curin;
} else if (minbound > maxbound) {
return elements;
} else {
/* 注意这里不能写成 search > curin */
if (search > arr[curin]) {
minbound = curin + 1;
} else {
maxbound = curin - 1;
}
}
}
}
/**
* insert 方法
* @param data
*/
public void insert(long data){
int j ;
/* 注意不能写成 j<elements-1 */
for(j=0;j<elements;j++){
if(arr[j] > data) break ;
}
for(int k=elements;k>j;k--){
arr[k] = arr[k-1] ;
}
arr[j] = data ;
elements++;
}
public boolean delete(long data){
boolean flag = false ;
int j = find(data) ;
if(j < elements){
for(int i=j;i<elements;i++){
arr[i] = arr[i+1];
}
elements-- ;
flag = true ;
}
return flag ;
}
/**
* display 方法
* @return
*/
public String display(){
StringBuilder arrStr = new StringBuilder();
/* 这里不能写成 i<elements-1 ,否则最后一个元素永远也取不到! */
for(int i=0;i<elements;i++){
arrStr.append(arr[i]);
if(i == elements-1){
arrStr.append(" .");
}else{
arrStr.append(" ,");
}
}
return arrStr.toString() ;
}
public int size(){
return elements ;
}
}
public class ErFenChaZhao {
public static void main(String[] args) {
DataArray01 arr = new DataArray01(100);
arr.insert(100);
arr.insert(69);
arr.insert(34);
arr.insert(98);
arr.insert(120);
arr.insert(500);
arr.insert(22);
arr.insert(33);
arr.insert(99);
arr.insert(77);
arr.insert(44);
arr.insert(11);
System.out.println(arr.display());
if(arr.delete(34))
System.out.println(arr.display());
if (arr.delete(22))
System.out.println(arr.display());
if(arr.find(500) < arr.size())
System.out.println("find 500");
}
}