数组 第1集

来源:互联网 发布:java微信网页支付demo 编辑:程序博客网 时间:2024/05/01 18:03

转载请注明出处:http://blog.csdn.net/u011569040/article/details/45971749

面向对象编程方式


程序:

1.使用自定义类封装数组

2.添加类的方法来实现数据操作:增、添、改、除

public class Myarrt {private long[] arr;private int elements;//构造方法public Myarrt(){arr = new long[50];}public Myarrt(int Maxsize){arr = new long[Maxsize];}//添加数据public void  insert (long value){arr[elements] = value;elements ++;}//显示数据public void display(){System.out.println("[");for (int i = 0; i < elements; i++) {System.out.println(arr[i] + " ");}System.out.println("]");}//查找数据public int search(long value){int  i;for(i = 0;i < elements; i++){if(value == arr[i]){break;}}if(i == elements){return -1;}else{return i;}}//根据索引来查public long get(int index){if(index >= elements||index<0){throw new ArrayIndexOutOfBoundsException();}else{return arr[index];}}//删除数据public void delete(int index){//假设数组里面有四个数据1、2、3、4,现在删除2,只需要让3覆盖2,4覆盖3,最后把数组的长度减一if(index >= elements||index<0){throw new ArrayIndexOutOfBoundsException();}else{for(int i = index;i < elements;i++){arr[index] = arr[index +1];}elements--;}}//更新数据public void change(int index,int newvalue){if(index >= elements||index<0){throw new ArrayIndexOutOfBoundsException();}else{arr[index] = newvalue;}}}
public class Test {public static void main(String[] args) {Myarrt my = new Myarrt();my.insert(13);my.insert(66);my.insert(352);my.display();System.out.println(my.search(190));System.out.println(my.get(1));my.delete(1);my.display();my.change(0 , 12);my.display();}}

有序数组

1.有序数组简介以及其优点

2.构建有序数组

只需要更改insert()方法

//添加数据(从小到大的顺序)public void  insert (long value){//假设有4个数,1、2、4、12,要插入3,先找出第一个比3大的数int i;for(i=0;i<elements;i++){if (arr[i]>value){break;}}//4比3大,然后把12赋值给第5个元素,4赋给12,3赋值给4for(int j = elements;j > i;j--){arr[j] = arr[j-1];}arr[i] = value;elements ++;}

查找算法:

1.线性查找

2.二分法查找(前提是有序数组)

//二分法查找public int binarySearch(long value){int middle = 0;int low = 0;int pow = elements;while(true){middle = (pow +low)/2;if(arr[middle] == value){return middle;}else if(low > pow){return -1;}else{if(arr[middle] > value){pow = middle -1;}else{low = middle +1;}}}}




0 0
原创粉丝点击