public class Test_search
{
public static void main(String[] args)
{
int[] a={1,3,6,8,9,10,12,18,20,34};
int i = 12;
System.out.println(binarySearch(a,i));
}
public static int search(int[] a, int num)
{
for(int i=0;i<a.length;i++)
{
if(a[i]==num)
{
return i;
}
return -1;
}
public static int binarySearch(int[] a,int num)
{
if(a.length==0)
{
return -1;
}
int startPos = 0;
int endPos = a.length-1;
int m = (startPos + endPos)/2;
while(startPos<=endPos)
{
if(num == a[m]) return m;
if(num > a[m])
{
startPos = m+1;
}
if(num < a[m])
{
endPos = m-1;
}
m=(startPos + endPos)/2;
}
}
}
}
显示的错误是这样的:Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method binarySearch(int[], int) is undefined for the type Test_search at Test_search.main(Test_search.java:8)
这个错误是不是说我定义方法错了?但是我不知道怎么改啊。
{
public static void main(String[] args)
{
int[] a={1,3,6,8,9,10,12,18,20,34};
int i = 12;
System.out.println(binarySearch(a,i));
}
public static int search(int[] a, int num)
{
for(int i=0;i<a.length;i++)
{
if(a[i]==num)
{
return i;
}
return -1;
}
public static int binarySearch(int[] a,int num)
{
if(a.length==0)
{
return -1;
}
int startPos = 0;
int endPos = a.length-1;
int m = (startPos + endPos)/2;
while(startPos<=endPos)
{
if(num == a[m]) return m;
if(num > a[m])
{
startPos = m+1;
}
if(num < a[m])
{
endPos = m-1;
}
m=(startPos + endPos)/2;
}
}
}
}
显示的错误是这样的:Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method binarySearch(int[], int) is undefined for the type Test_search at Test_search.main(Test_search.java:8)
这个错误是不是说我定义方法错了?但是我不知道怎么改啊。
public class Test_search
{
public static void main(String[] args)
{
int[] a={1,3,6,8,9,10,12,18,20,34};
int i = 12;
System.out.println(binarySearch(a,i));
} public static int search(int[] a, int num)
{
for(int i=0;i<a.length;i++)
{
if(a[i]==num)
{
return i;
} }
return -1;
}
public static int binarySearch(int[] a,int num)
{
if(a.length==0)
{
return -1;
} int startPos = 0;
int endPos = a.length-1;
int m = (startPos + endPos)/2;
while(startPos<=endPos)
{
if(num == a[m])
return m;
if(num > a[m])
{
startPos = m+1;
}
if(num < a[m])
{
endPos = m-1;
}
m=(startPos + endPos)/2;
}
return -1;
}
}
public class Test_search {
public static void main(String[] args) {
int[] a = { 1, 3, 6, 8, 9, 10, 12, 18, 20, 34 };
for(int i=0; i<13; i++)
System.out.println(search(a,i) + " " + binarySearch(a, i));
} public static int search(int[] a, int num) {
for (int i = 0; i < a.length; i++) {
if (a[i] == num) {
return i;
}
//return -1;把这一行代码移至方法最后return -1;
} return -1;// 没有返回
} public static int binarySearch(int[] a, int num) {
if (a.length == 0) {
return -1;
} int startPos = 0;
int endPos = a.length - 1;
int m = (startPos + endPos) / 2;
while (startPos <= endPos) {
if (num == a[m])
return m;
if (num > a[m]) {
startPos = m + 1;
}
if (num < a[m]) {
endPos = m - 1;
}
m = (startPos + endPos) / 2;
}
return -1;//没有返回
}
}
/*
-1 -1
0 0
-1 -1
1 1
-1 -1
-1 -1
2 2
-1 -1
3 3
4 4
5 5
-1 -1
6 6
*/
{
public static void main(String[] args)
{
int[] a={1,3,6,8,9,10,12,18,20,34};
int i = 12;
System.out.println(binarySearch(a,i));
} public static int search(int[] a, int num)
{
for(int i=0;i<a.length;i++)
{
if(a[i]==num)
{
return i;
}
}
return -1;
}
public static int binarySearch(int[] a,int num)
{
if(a.length==0)
{
return -1;
}
int startPos = 0;
int endPos = a.length-1;
int m = (startPos + endPos)/2;
while(startPos<=endPos)
{
if(num == a[m]) return m;
if(num > a[m])
{
startPos = m+1;
}
if(num < a[m])
{
endPos = m-1;
}
m=(startPos + endPos)/2;
}
return m;
} }
如果是,那楼上的几位仁兄都改变你的意图了。我想不通。如果不是,那你就应用楼上的就ok了
方法内部定义静态方法,学了半年java,从来没见过
我以为是JDK7有这玩意,刚才google一下,啥东东都没看到
我现在水平只知道可以在方法里定义内部类(或者匿名内部类) 然后内部类中定义方法
search定义也是有问题的,不是不过语法问题,是逻辑问题;修改方法见1、2楼