数组在数据结构中的作用是非常重要的,所以要学好数据结构与算法,首先就要对数组有必要的了解和熟悉。实例采用面向对象的思想,对数组进行操作。
声明long型的数组,元素内长度为element。
private long[] arr;
private int element;
1 //无参构造函数 2 public MyArray(){ 3 arr = new long[50]; 4 } 5 6 //有参构造函数 7 public MyArray(int maxSize){ 8 arr = new long[maxSize]; 9 }
1 public void insert(long value){ 2 arr[element] = value; 3 element++; 4 }
1 public void insertOrder(long value){ 2 int i; 3 for(i=0;i<element;i++){ 4 if(arr[i]>value){ 5 break; 6 } 7 } 8 for(int j=element;j>i;j--){ 9 arr[j] = arr[j-1]; 10 } 11 arr[i] = value; 12 element++; 13 }
1 public void display(){ 2 System.out.println("["); 3 for(int i=0; i<element;i++) 4 { 5 System.out.println(arr[i]+""); 6 } 7 System.out.println("]"); 8 9 }
1 public int search(long value){ 2 int i; 3 for(i=0; i<element; i++){ 4 if(value == arr[i]){ 5 break; 6 } 7 } 8 if(i == element){ 9 return -1; 10 }else 11 return i; 12 }
1 public long getValue(int index){ 2 if(index >= element || index < 0){ 3 throws new ArrayIndexOutOfBoundsException(); 4 } 5 else{ 6 return arr[index]; 7 } 8 }
1 public int binarySearch(long value){ 2 int middle = 0; 3 int low=0; 4 int pow=element; 5 while(true){ 6 middle=(pow+low)/2; 7 if(arr[middle] == value){ 8 return middle; 9 }else if(low>pow){ 10 return -1; 11 }else{ 12 if(arr[middle]>value){ 13 pow = middle-1; 14 }else{ 15 low = middle+1; 16 } 17 } 18 } 19 }
1 public void delete(int index){ 2 if(index >= element || index < 0){ 3 throws new ArrayIndexOutOfBoundsException(); 4 }else{ 5 for(int i = index; i<element; i++){ 6 arr[index] = arr[index+1] 7 } 8 element--; 9 } 10 }
1 public void update(int index,int newData){ 2 if(index >= element || index < 0){ 3 throws new ArrayIndexOutOfBoundsException(); 4 }else{ 5 arr[index] = newData; 6 } 7 } 8 }