数组的简单操作

数组在数据结构中的作用是非常重要的,所以要学好数据结构与算法,首先就要对数组有必要的了解和熟悉。实例采用面向对象的思想,对数组进行操作。

声明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 }
修改数组值
posted @ 2015-06-02 14:57  疯狂的蜗牛仔  阅读(186)  评论(0编辑  收藏  举报