数组 第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
- 数组 第1集
- 第3章第1节 数组的存储结构
- java当中数组(第40集)
- OC第五天:字典、集、数组排序
- 第05章 数组 03 练习1
- 第13周项目1整型数组
- 第14周项目1-二维数组
- 第16周项目1-数组排序
- 【第2节】Java数组(1)
- 第14周 oj 1 数组逆序
- 第7章 数组
- 第6章数组
- 第8天 数组
- 数组之第几天
- 第7章 数组
- 第14章:数组
- 第 2 章 数组
- java第三节数组
- CSS如何设置html table表格边框样式
- myeclipse和eclipse的联系和区别
- composer的linux下的安装
- Java技术体系
- [逆向拓扑排序]POJ3687 Labeling Balls
- 数组 第1集
- cocos2dx 3.x虚拟摇杆及其应用
- spark:线性回归--44
- unity3d优化总结篇
- 使用ajaxfileupload.js上传无法进回调问题终极解决
- 坐标的3-2-1转动和2-3-1转动
- 【禅道】--不使用帮助的IT员工当不了好老板(理论篇)
- C# 调用C++或者C的DLL
- hihocoder 1032 最长回文子串