建立一个ArrayTool工具
第一个
class ArrayTool { private ArrayTool () {} //空参数私有化 //获取一个数组的最大值 public static int getMax(int[] arr) // 因为功能函数里没有调用对象,所以用static { int max = 0; for (int x=1;x<arr.length;x++) { if(arr[x]>arr[max]) max = x; } 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]) min = x; } return arr[min]; } //定义一个置换功能,因为不需要对用户提供,所以可以设置为私有权限 private static void swap(int[] arr,int a,int b) { int temp =arr[a]; arr[a] = arr[b]; arr[b] = temp; } //定义一个对数组的打印功能 public static void printArr(int[] arr) { System.out.print("[ "); for(int x=0;x<arr.length;x++) if (x!=arr.length-1) System.out.print(arr[x]+","); else System.out.print(arr[x]+" ]"); System.out.println(); } //选择排序(从小到大) public static void selectSort(int[] arr) { for(int x=0;x<arr.length-1;x++) { for(int y=x+1;y<arr.length;y++) if (arr[x]>arr[y]) { swap(arr,x,y); } } } //冒泡排序(从大到小) 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); } } } //折半查询 public static int halfSearch(int[] arr,int key) { int min=0,max=arr.length-1,mid; while (min<=max) { mid = (min+max)/2; if(key>arr[mid]) min = mid+1; else if(key<arr[mid]) max = mid-1; else return mid; } return -1; } }
第二个
class ArrayDemo { public static void main(String[] args) { //ArrayTool tool = new ArrayTool(); //禁止空参数建立,因为在不同的类 int[] arr = {12,17,6,9,11,3,20}; int max = ArrayTool.getMax(arr); int min = ArrayTool.getMin(arr); System.out.println("max="+max+"\n"+"min="+min); ArrayTool.printArr(arr); ArrayTool.selectSort(arr); ArrayTool.printArr(arr); ArrayTool.bubbleSort(arr); ArrayTool.printArr(arr); int[] arr1 = {1,3,5,7,9,11}; int key = ArrayTool.halfSearch(arr1,8); System.out.println("key="+key); } }
<< 上一篇
下一篇 >>
网友留言(0 条)