本帖最后由 qwert 于 2011-12-13 17:53 编辑
各位前辈,我还是个新手,在看毕向东老师的java基础视频。
今天看完之后开始自己写,然后遇到了一个问题,请各位前辈抽出些时间帮我查看一下:- class Tool
- {
- //返回最大值
- public static int getMax(int[] arr)
- {
- int max = 0;
- for (int x=1;x<arr.length;x++ )
- {
- if (arr[x]>arr[max])
- {
- swap(arr,x,max);
- }
-
- }
- return arr[max];
- }
-
- //返回最小值
- public static int getMin(int[] arr)
- {
- int min = 0;
- for (int x=1;x<arr.length;x++ )
- {
- if (arr[x]<arr[min])
- {
- swap(arr,x,min);
- }
-
- }
- return arr[min];
- }
- //折半查找
- public static int halfSort(int[] arr,int key)
- {
- int max=arr.length-1,min=0,mid=(max+min)>>>1;
- while(key!=arr[mid])
- {
- mid=(max+min)>>>1;
- if(key>arr[mid])
- {
- min=mid+1;
- }
- else if(key<arr[mid])
- {
- max=mid-1;
- }
- else if(max<min)
- {
- return -1;
- }
- }
- return mid;
-
- }
- //冒泡排序
- public static void bubbleSort(int[] arr)
- {
- for (int x=0;x<arr.length-1;x++ )
- {
- for(int y=0;y<arr.length-x-1;y++)
- {
- if(arr[y]>arr[y+1])
- {
- swap(arr,y,y+1);
- }
- }
- }
- printArray(arr);
- }
- //选择排序
- public static void selectSort(int[] arr)
- {
- for (int x=0;x<arr.length-1;x++ )
- {
- for(int y=x+1;y<arr.length-1;y++)
- {
- if (arr[x]>arr[y])
- {
- swap(arr,x,y);
- }
- }
- }
- printArray(arr);
- }
-
- //调换位置
- private static void swap(int[] arr,int a,int b)
- {
- int temp = arr[a];
- arr[a] = arr[b];
- arr[b] = temp;
- }
- //打印数组
- private static void printArray(int[] arr)
- {
- System.out.print("[");
- for (int i=0;i<arr.length;i++)
- {
- if(i!=arr.length-1)
- {
- System.out.print(arr[i]+",");
- }
- else
- System.out.print(arr[i]+"]"+"\n");
- }
- }
- }
- class ArrayToolDemo
- {
- public static void main(String[] args)
- {
- int[] arr={12,7,9,13,8,5,6,14};
- //tool.bubbleSort(arr);
- int x = Tool.getMin(arr);
- int y = Tool.getMax(arr);
- int z = Tool.halfSort(arr,14);
-
- System.out.println("min="+x);
- System.out.println("max="+y);
- System.out.println(z);
-
- }
- }
复制代码 编译通过,然后java ArrayTestDemo时不出结果。
然后我把x和y ,还有System.out.println("min="+x);
System.out.println("max="+y);
注释掉,就可以出结果。
单独把z注释掉,保留x和y也可以出结果,但就是三个一起输出没有结果。
请各位前辈帮我检查一下,不胜感激!! |