package test02;
public class Hightarray_create {
private int[] array;
private int nitem;
public Hightarray_create(int size) //在构造函数中创建一个数组
{
array=new int[size];
nitem=0;
}
public void insert(int value) //向数组中插入数据
{
array[nitem]=value;
nitem++; //跟踪记录数组中已有的数据个数
}
public boolean delete(int value) //从数组中删除指定的数据
{
int i;
for(i=0;i<nitem;i++)
if(array[i]==value) //找到待删除的的数据
break;
if(i==nitem)
return false;
else
{
for(int k=i;k<nitem;k++)
array[k]=array[k+1];
nitem--;
}
return true;
}
public boolean find(int search_key) //查找指定的数据
{
int j;
for(j=0;j<nitem;j++)
if(array[j]==search_key)
break;
if(j==nitem) //说明没有找到
return false;
else
return true;
}
public void print_array() //打印数组
{
for(int m=0;m<nitem;m++)
{
if(m!=nitem-1)
System.out.print(array[m]+" ");
else
System.out.println(array[m]);
}
}
public int length() //返回数组的长度
{
return nitem;
}
public int half_find(int value) //使用折半查找法
{
int low=0,hight=nitem-1,mid;
while(low<=hight)
{
mid=(low+hight)/2;
if(array[mid]<value)
low=mid+1;
else if(array[mid]>value)
hight=mid-1;
else
return mid;
}
return -1; //没有找到
}
public void order_insert(int value) //有序插入
{
int n;
for(n=0;n<nitem;n++)
if(array[n]>value) //查到待插入位置了
break;
for(int k=nitem;k>n;k--)
array[k]=array[k-1]; //依次往后移动一个位置
array[n]=value; //将value值插入到空下来的位置上
nitem++;
}
}
//以下是测试类
package test02;
public class Hight_test {
public static void main(String[] args) {
Hightarray_create harray=new Hightarray_create(20);
//以下是对无序数组的操作
/*harray.insert(12);
harray.insert(2);
harray.insert(3);
harray.insert(34);
harray.insert(5);
harray.insert(23);
harray.insert(55);
harray.insert(65);
harray.print_array(); //调用打印函数
harray.delete(5); //调用删除某个指定的数据
harray.print_array();
harray.insert(44);
harray.print_array();
System.out.println(harray.find(3));
System.out.println(harray.length());
System.out.println(harray.half_find(3)); //使用折半查找数据3的位置
harray.print_array();*/
harray.order_insert(10); //调用有序插入函数
harray.order_insert(15);
harray.order_insert(78);
harray.order_insert(34);
harray.print_array();
harray.order_insert(22);
harray.print_array();
System.out.println("有序数组长度为:"+harray.length());
System.out.println("待查找的数据的位置为:"+harray.half_find(34));
}
}
将数组封装到类中
最新推荐文章于 2022-08-08 16:17:13 发布