java实现有序数组
来源:互联网 发布:java web start 1.4.2 编辑:程序博客网 时间:2024/05/16 09:45
java实现有序数组
最近看到一篇文章,大概就是说程序员如果想要提升,就应该写博客。受到了一定启发,所以来此创建账号,准备写点什么。
- 注意:本文章只适合初学者阅读。其中很多代码参考源码所写,仅供自娱自乐
package demo;import java.util.Arrays;import java.util.Iterator;//升序数组public class OrderArray implements Iterable<Long>{ private long[] array;//内置数组 private int size;//当前数组内元素数量 public OrderArray(int maxSize){ array=new long[maxSize]; size=0; } public int size(){ return size; } public void delete(int index){ for(int i=index;i<size;i++){ array[i]=array[i+1]; } size--; } /** * 按从小到大的顺序将值插入相应位置 * @param value */ public void insert(long value){ if(size == 0){ array[size++]=value; return; } int i=select(value); i=i>=0?i:-i; for(int j=size;j>i;j--){ array[j]=array[j-1]; } array[i] = value; size++; } public int select(long searchVlaue){ int low=0; int high=size-1; while(low<=high){ int mid=(low+high) >>> 1; long midValue=array[mid]; if(midValue>searchVlaue){ high=mid - 1; }else if(midValue<searchVlaue){ low=mid + 1; }else{ return mid; } } return -(low); } @Override public String toString() { if(size()==0){ return "[]"; } StringBuilder sb=new StringBuilder(); sb.append("["); for(int i=0;;i++){ sb.append(array[i]); if(i==size-1){ return sb.append("]").toString(); } sb.append(","); } } @Override public Iterator<Long> iterator() { return new itr(); } private class itr implements Iterator<Long>{ int next=0; int del=-1; @Override public boolean hasNext() { return next!=size(); } @Override public Long next() { long value=array[next]; del=next; next++; return value; } @Override public void remove() { delete(del); next--; } }}
阅读全文
0 0
- java实现有序数组
- Java有序数组的实现
- 合并两个有序数组Java实现
- java实现两个有序数组的合并
- java实现有序数组的折半查找
- java实现(有序)数组插入元素
- k路有序数组归并Java实现
- java实现把两个有序数组合并到一个数组
- java数据结构-有序数组
- java有序数组
- Java有序数组
- java实现向有序数组中插入一个元素
- 有序符号表(数组实现,JAVA,算法(四),二分法)
- 有序表查询之一:java实现整型数组二分查找
- 有序数组实现优先队列
- 有序数组实现符号表
- Java合并两个有序数组
- java将两个有序数组合并成一个有序数组
- Visual Studio 2015 debug 显示 utf-8 汉字
- USB驱动程序(四)——键盘驱动(控制传输)
- pyc和py文件的区别
- html模板引擎(doT.min.js)和分页插件
- Android中的子线程 和 组件service 区别。
- java实现有序数组
- [Java基础] 使用JMAP dump及分析dump文件
- Android BLE蓝牙4.0
- 笔记(RemoveAll;DataGridView用linq查询;动态添加控件时闪烁问题)
- Linux 网络访问控制
- php实现发送微信模板消息的方法
- greenDao 3.x遇到数据库升级,且表结构中添加int类型字段问题。
- 修改包名
- Log4j从入门到详解