Java基于可扩充数组的向量实现(算法源码)
/* 高手之作,本人谨以收藏者身份拿出共享供大家参考! */
/*
* 向量接口
*/
package dsa;
public interface Vector {
//返回向量中元素数目
public int getSize();
//判断向量是否为空
public boolean isEmpty();
//取秩为r的元素
public Object getAtRank(int r)
throws ExceptionBoundaryViolation;
//将秩为r的元素替换为obj
public Object replaceAtRank(int r, Object obj)
throws ExceptionBoundaryViolation;
//插入obj,作为秩为r的元素;返回该元素
public Object insertAtRank(int r, Object obj)
throws ExceptionBoundaryViolation;
//删除秩为r的元素
public Object removeAtRank(int r)
throws ExceptionBoundaryViolation;
}
/*
* 基于数组的向量实现
*/
package dsa;
public class Vector_Array implements Vector {
private final int N = 1024;//数组的容量
private int n = 0;//向量的实际规模
private Object[] A;//对象数组
//构造函数
public Vector_Array() {
A = new Object[N];
n = 0;
}
//返回向量中元素数目
public int getSize() { return n; }
//判断向量是否为空
public boolean isEmpty() { return (0 == n) ? true : false; }
//取秩为r的元素
public Object getAtRank(int r)//O(1)
throws ExceptionBoundaryViolation {
if (0 > r || r >= n) throw new ExceptionBoundaryViolation("意外:秩越界");
return A[r];
}
//将秩为r的元素替换为obj
public Object replaceAtRank(int r, Object obj)
throws ExceptionBoundaryViolation {
if (0 > r || r >= n) throw new ExceptionBoundaryViolation("意外:秩越界");
Object bak = A[r];
A[r] = obj;
return bak;
}
//插入obj,作为秩为r的元素;返回该元素
public Object insertAtRank(int r, Object obj)
throws ExceptionBoundaryViolation {
if (0 > r || r > n) throw new ExceptionBoundaryViolation("意外:秩越界");
if (n >= N) throw n
相关文档:
今天我学习了sql的简单查询语句,
一些基本的概念:
1 系统权限:数据库中的对象, 表,创建表,删除表
2 对象权限:对数据的增、删、改、查� ......
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
Java中的变量与对象有区别吗?
引子:变量与对象
变量是Java中最基本的存储单元,为变量赋值可以使用赋值表达式。如:
int i = 10;
该表达式的含义是将一个字面量(literal)10赋值给一个类型为int型的变量,变量名为i。这是一个� ......
maven 相信很多人都用到听过,用的人应该不是很多,至少我们公司1000人级别的IT部门都没用。
复杂程度决定工具的使用情况,刚入门的程序员如果没有一种良好的学习心态看了肯定会对ant有点抱怨(使得你不能很快在ec上看到结果)。况且不说maven做的好不好,起码能给大型项目的管理提供一种新的思路。自动化能减少很多时间和交 ......