int[ ] nums = {12,13,16,66,76,200};
在下面的代码中的em1位置,使用Arrays中的二分查找方法,找出数组中元素为“16”所在的位置。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
import java.util.Arrays;
public class Test
{
public static void main(String[] args)
{
int[] nums={12,13,16,66,76,200};
//em1
System.out.println(idx);
}
}我自己写的代码是:
import java.util.Arrays;
public class Test
{
public static int halfSearch(int[] nums,int key)
{
int min = 0, max = nums.length-1, mid;
while(min<=max)
{
mid = (max - min)>>1;
if(key>nums[mid])
{
min = mid + 1;
}
else if(key<nums[mid])
{
max = mid - 1;
}
else
{
return mid;
}
}
return -1;
}
public static void main(String[] args)
{
int[] nums={12,13,16,66,76,200};
int idx = halfSearch(nums,16);
System.out.println(idx);
}
}编译通过了,但是显示代码长度过长,请问各位大神,该如何精简?或者不调用函数,直接在主函数里面写出来行吗?
在下面的代码中的em1位置,使用Arrays中的二分查找方法,找出数组中元素为“16”所在的位置。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
import java.util.Arrays;
public class Test
{
public static void main(String[] args)
{
int[] nums={12,13,16,66,76,200};
//em1
System.out.println(idx);
}
}我自己写的代码是:
import java.util.Arrays;
public class Test
{
public static int halfSearch(int[] nums,int key)
{
int min = 0, max = nums.length-1, mid;
while(min<=max)
{
mid = (max - min)>>1;
if(key>nums[mid])
{
min = mid + 1;
}
else if(key<nums[mid])
{
max = mid - 1;
}
else
{
return mid;
}
}
return -1;
}
public static void main(String[] args)
{
int[] nums={12,13,16,66,76,200};
int idx = halfSearch(nums,16);
System.out.println(idx);
}
}编译通过了,但是显示代码长度过长,请问各位大神,该如何精简?或者不调用函数,直接在主函数里面写出来行吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货