数组的复制,反转,查找(线性,二分法)

①数组的复制

int []ary1 =new int[]{1,2,3,4,5,6,7}
int ary2 = new int[ary1.length];
for(int i=0;i<ary.length;i++)
{
ary2[i]=ary1[i];
}

②数组的反转

for(int i=0;i<ary1.length/2;i++)
//除以2是不让其交换两次
{
int temp = ary[i];
ary1[i]=ary1[ary1.length-i-1];
arr1[arr1.length-i-1] = temp;
}

③查找(线性)

int dest = 2;
boolean isflag = true;
//判断找没找到,如果找到了就在循环中将其变为false
//如果他的值不变就说明它没有进入循环,即没找到这个数字
for(i=0;i<arr1.length;i++){
	if(dest==arr1[i])
	{
	syso("找到了,其位置为"+i);
	isflag = false;
	break;
	}
}
if(isflag)
{
syso("没找到");
}

查找(二分法:折半查找)
二分法的前提是查找的数组是有序数组

int dest = 5;
int head = 0;//首索引为0;
int end = ary1.length-1;//末索引为数组长度
boolean isflag = true;
while(head<=end)
{
	int middle = (head+end)/2;
	if(dest=ary1[middle])
	{
	syso("有这个数字,位置是"+middle)
	isflag = false;
	break;//如果找到就跳出循环
	}else if(dest>ary1[middle]{
	head = middle + 1;
	}else if((dest<ary1[middle])
	{
	end = middle - 1;
	}
}
if(isflag)
{
syso("没有找到")
}

以上,如果想要从屏幕中输入一个数字查找是否在数组中,引入Scanner即可。自己私下实验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值