数据结构学习--Java数组的实现
2019-10-31 16:26 小花儿鹿 阅读(622) 评论(0) 编辑 收藏 举报一、创建数组
private long[] arr;//初始化数组
private int elemenets;//数组有效数据长度
二、添加数组
public void insert(long value){
arr[elemenets] = value;
elemenets ++;
}
三、显示数组
public void display(){
System.out.print("[");
for(int i = 0;i < elements;i ++) {
System.out.print(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) {
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[idnex] = newvalue;
}
}
八、有序数组
public void insert(long value){
int i;
for(i = 0;i < elements; i++){
if(arr[i] > value) {
break;
}
}
for(int j = elements; j > i; j --){
arr [j] = arr[j - 1];
}
arr[i] = value;
elements ++;
}
九、二分法查找数组
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;
}
}
}
}