package cn.china; //import java.util.Arrays; //import java.util.Scanner; /** * 数组工具类,并且类内部方法都为静态方法,不提供初始化对象调用!!! * 包含数组排序、最值、查找等方法 * @author 王大侠 * @version V1.0*/ public class ArrayTool { private ArrayTool() { } /** * 数组选择排序 * @param arr 传入一个数组用于验证程序*/ public static void arraysort(int[]arr){ for(int x=0;x<arr.length-1;x++){ for(int y=x+1;y<arr.length;y++){ exchange(arr, x, y); } } } private static void exchange(int[]arr,int x,int y){ if(arr[x]>arr[y]){ int temp=arr[x]; arr[x]=arr[y]; arr[y]=temp; } } /** * 冒泡数组排序 * @param arr 传入一个数组用于验证程序 * 传入数组验证程序*/ public static void arraysort2(int []arr){ for(int x=0;x<arr.length-1;x++){ for(int y=0;y<arr.length-1-x;y++){ exchange(arr, y, y+1); } } } /** * 数组最大值提取 * @param arr 传入一个数组用于验证程序 * @return max 返回最大值*/ public static int arraymax(int[]arr){ int max=arr[0]; for(int x=0;x<arr.length;x++){ if(max<arr[x]){ max=arr[x]; } } return max; } /** 数组最小值提取 @param arr 传入一个数组用于验证程序 @return 返回最小值*/ public static int arraymin(int[]arr){ int min=arr[0]; for(int x=0;x<arr.length;x++){ if(min<arr[x]){ min=arr[x]; } } return min; } /** * 查找数组元素 * @param arr 传入一个数组用于验证程序 * @param key 传入一个要查找的数据 * @return x 返回被查找数据在数组中角标 * @return -1 未找到数据返回-1*/ public static int arraysearch(int[]arr,int key){ for(int x=0;x<arr.length;x++){ if(arr[x]==key){ System.out.println("查找数据在数组中角标为:"); return x; } } System.out.println("未在数组中找到相关元素"); return -1; } // public void ArraysDelete (){ // Scanner sc =new Scanner(System.in); // int[] arr = new int[]{1,2,4,5,9,8,0}; // System.out.println(Arrays.toString(arr)); // System.out.println("请输入要删除第几个元素:"); // int n = sc.nextInt(); sc.close(); // arr[n-1] = arr[arr.length-1]; // arr = Arrays.copyOf(arr, arr.length-1); // System.out.println(Arrays.toString(arr)); // // } /** * 数组倒置 * @param arr 传入一个数组用于验证程序*/ public static void invertArray(int[]arr){ int head=0; int tail=arr.length-1; int mid=arr.length>>1; for(int x=0;x<mid;x++){ int temp=arr[head]; arr[head]=arr[tail]; arr[tail]=temp; head++; tail--; } } /** * 打印数组 * @param arr 传入一个数组用于验证程序*/ 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]+","); } } } /** * 打印二维数组,并计算二维数组内的数据之和 * @param arr 传入一个数组用于验证程序 * @return sum 返回二维数组元素之和*/ public static int addarray(int[][]arr){ int sum=0; for(int x=0;x<arr.length;x++){ for(int y=0;y<arr[x].length;y++){ //System.out.print(arr[x][y]+","); sum+=arr[x][y]; } } return sum; } /** * 二分查找 * 前提传入数组必须是有序的 * @param arr 传入一个有序数组用于验证程序 * @param key 传入要搜索数据 * @return mid 返回搜索数据在数组中的角标 * @return 在数组中未发现要搜索数据,返回此数据在本数组中插入位置的取反值*/ public static int binarysearch(int[]arr,int key){ int min=0; int max=arr.length-1; int mid; while(min<=max){ mid=(min+max)>>1; if(arr[mid]<key) { min=mid+1; }else if(arr[mid]>key){ max=mid-1; }else{ return mid; } } return ~min; } }
package cn.china; public class TestDriver { public static void main(String[] args) { //int[]arr={1,2,5,6,34,87,505}; int[][]arr={{11,2,5},{62,34},{871,50}}; //int max=ArrayTool.arraymax(arr); int a=ArrayTool.addarray(arr); System.out.println(a); //ArrayTool.printarr(arr); } }
Export==java==javadoc==next==添加javadoc路径==finish 文档格式没出错就可以创建成功了!!!
时间: 2024-10-27 13:25:03