import java.util.Arrays;
public class Test{
public static int indexOf(int[] a,int v){//查找给定数字下标,找不到返回-1
for(int i=0;i<a.length;i++)
{
if(a[i]==v)
return i;
}
return -1;
}
public static int[] copyOf(int[] a,int newLength){//如果a数组的长度大于newLength,则将a数组拷贝到一个新数组中;
int[] b=new int[newLength]; //如果a数组的长度小于newLength,则将a数组拷贝到一个新数组中,剩余部分填0;
if(a.length<newLength)
{
for(int i=0;i<a.length;i++)
{
b[i]=a[i];
}
}
else
{
for(int i=0;i<newLength;i++)
{
b[i]=a[i];
}
}
return b;
}
public static int binarraySeach(int[] a,int v){//二分法查找给定数字下标,找不到返回-1
int left=0;
int right=a.length-1;
int mid=(left+right)/2;
while(left<=right)
{
if(a[mid]==v)
return mid;
else if(a[mid]<v)
{
left=mid+1;
mid=(left+right)/2;
}
else
{
right=mid-1;
mid=(left+right)/2;
}
}
return -1;
}
public static void main(String[] args){
int[] a={1,2,3,4,5};
System.out.println(indexOf(a,5));
System.out.println(Arrays.toString(copyOf(a,7)));
System.out.println(binarraySeach(a,10));
}
}
在数组中查找指定数字下标的两种方法(找不到返回-1)
最新推荐文章于 2024-05-03 00:37:15 发布