package ch01;
/**
* @author lixin
* @date 2018年7月22日
* @Description 数组
*/
public class MyArray {
private long[] arr;
//表示有效数据长度
private int element;
public MyArray(){
arr= new long[50];
}
public MyArray(int maxsize){
arr = new long[maxsize];
}
/**
* 添加数据
*/
public void insert(long value){
arr[element] = value;
element++;
}
/**
* 显示所有数据
*/
public void show(){
System.out.print("[");
for(int i =0;i=element||index<0){
throw new ArrayIndexOutOfBoundsException();
}else{
return arr[index];
}
}
/**
* 删除数据
*/
public void delete(int index) {
if(index >= element || index < 0) {
throw new ArrayIndexOutOfBoundsException();
} else {
for(int i = index; i < element; i++) {
arr[i] = arr[i + 1];
}
element--;
}
}
/**
* 更新数据
*/
void change(int index,long value){
if(index >= element || index < 0) {
throw new ArrayIndexOutOfBoundsException();
} else {
arr[index]=value;
}
}
}
有序数组
package ch01;
public class MyOrderArray {
private long[] arr;
//表示有效数据长度
private int element;
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=i;j--){
arr[j+1]=arr[j];
}
arr[i]=value;
element++;
}
/**
* 显示所有数据
*/
public void show(){
System.out.print("[");
for(int i =0;i=element||index<0){
throw new ArrayIndexOutOfBoundsException();
}else{
return arr[index];
}
}
/**
* 删除数据
*/
public void delete(int index) {
if(index >= element || index < 0) {
throw new ArrayIndexOutOfBoundsException();
} else {
for(int i = index; i < element; i++) {
arr[i] = arr[i + 1];
}
element--;
}
}
/**
* 更新数据
*/
void change(int index,long value){
if(index >= element || index < 0) {
throw new ArrayIndexOutOfBoundsException();
} else {
arr[index]=value;
}
}
/**
* 二分法查找
*/
int binarySearch(long value){
int middle=0;
int left=0;
int right=element;
while(true){
middle=(left+right)/2;
if(arr[middle]==value){
return middle;
}else if(right<=left){
return -1;
}else{
if(value>arr[middle]){
left=middle+1;
}
if(value
测试
package ch01;
public class TestArray {
public static void main(String[] args) {
//MyArray arr = new MyArray(40);
//arr.insert(12);
//arr.insert(15);
//arr.insert(159);
//arr.show();
//System.out.println(arr.select(159));
//System.out.println(arr.selectByIndex(2));
//arr.delete(1);
//arr.show();
//arr.change(0, 222);
//arr.show();
MyOrderArray arr = new MyOrderArray(59);
arr.insert(11);
arr.insert(39);
arr.insert(2);
arr.show();
System.out.println(arr.binarySearch(39));
}
}