java数据结构 数组与有序数组
来源:互联网 发布:Win apache cgi 配置 编辑:程序博客网 时间:2024/05/14 17:53
数组
//创建数组int[] arr=new int[10];//初始化long[] ar=new long[]{2,3,4};
java自带ArrayList(线性表)
自定义数组类,实现添加数据、显示数据、线性查找数据、删除数据、更新数据
/* * 数组:线性表 */public class MyArray {private long[] arr;//表示有效数据的长度private int elements;public MyArray(){arr=new long[50];}public MyArray(int maxsize){arr=new long[maxsize];}/* * 添加数据 */public void insert(long value){arr[elements]=value;elements++;}/* * 显示数据元素 */public void display(){System.out.print("[");for(int i=0;i<elements;i++){System.out.print(arr[i]+" ");}System.out.print("]");}/* * 查找数据 */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){return -1;}elsereturn arr[index];}/* * 删除数据 */public void delete(int index){if(index>=elements||index<0){return ;}for(int i=index;i<elements-1;i++){arr[index]=arr[index+1];}elements--;}/* * 更新数据 */public void change(int index,int newvalue){if(index>=elements||index<0){return ;}else arr[index]=newvalue;}}
有序数组
添加数据时要保证有序、有序数组可以采用二分查找
/* * 有序数组 */public class MyOrderArray {private long[] arr;//表示有效数据的长度private int elements;public MyOrderArray(){arr=new long[50];}public MyOrderArray(int maxsize){arr=new long[maxsize];}/* * 添加数据,保证有序 */public void insert(long value){int i;for(i=0;i<elements;i++){if(arr[i]>value)break;}elements++;for(int j=elements-1;j>i;j--){arr[j]=arr[j-1];}arr[i]=value;}/* * 在有序数组中可以采用二分查找 */public int binarySearch(long value){int middle=0;int start=0;int end=elements;while(true){middle=(start+end)/2;if(arr[middle]==value)return middle;else if(start>end){return -1;}else if(arr[middle]>value)end=middle-1;elsestart=middle+1;}}}
测试类
public class TestMyArray {public static void main(String[] args) {// TODO Auto-generated method stubMyArray arr=new MyArray();arr.insert(13);arr.insert(34);arr.insert(90);arr.display();System.out.println(arr.search(34));System.out.println(arr.get(2));//arr.delete(1);arr.change(0, 5);arr.display();MyOrderArray arr2=new MyOrderArray();arr2.insert(100);arr2.insert(34);arr2.insert(20);arr2.display();System.out.println(arr2.binarySearch(100));}}
0 0
- java数据结构 数组与有序数组
- java数据结构-有序数组
- 《Java数据结构与算法》笔记-CH2有序数组
- java数据结构与算法-有序数组二分查找
- 【数据结构与算法】有序数组二分法查找
- 数据结构-01 数组(有序数组)
- [数据结构]合并有序数组
- Java数组与数据结构
- 数据结构回顾版-java数据结构-有序数组和查找算法
- 数据结构与算法分析笔记与总结(java实现)--排序9:有序数组合并练习题
- Java数据结构与算法之有序数组的插入和合并
- java有序数组
- Java有序数组
- java实现有序数组
- 数据结构与算法之整体有序数组的查找
- java内置数据结构--数组与动态数组
- Java 数据结构之有序数组,二分查找法
- Java数据结构与算法--数组
- 关于最近面试的知识点的总结
- 浮点型数据的精度控制问题
- php今天碰到unlink不能删除文件的问题
- JavaWeb——Day11_2
- ffmpeg参数解释
- java数据结构 数组与有序数组
- Objective-C Runtime
- Spark学习笔记-Streaming-1<转>
- WEB界面客制化之资产转移申请单(直接改RTF模板或WF程序包)
- ThinkPHP介绍--1
- 日期时间帮助类
- Myeclipse 切换控制台显示。
- strut2标签s:set和s:if
- cocos2d-x 基础概念介绍--导演 场景 层 精灵