import java.util.Arrays; import java.util.Scanner; /** * Created with IntelliJ IDEA. * Description: * User: WHY * Date: 2022-05-10 * Time: 14:13 */ public class TestDemo { /** * 数组转字符串 * * 作业内容 * 实现一个方法 toString, 把一个整型数组转换成字符串. 例如数组 {1, 2, 3} , 返回的字符串为 "[1, 2, 3]", 注意 逗号 的位置和数量. * @param */ public static String myToString(int[] array) { if(array == null) return "null";//Java中的断言 String ret = "["; for (int i = 0; i < array.length; i++) { ret += array[i]; if(i != array.length-1) { ret += ", "; } } ret+="]"; return ret; } public static void main(String[] args) { int[] array = {1,2,3,4,5}; String ret = myToString(array); System.out.println(ret); } // 实现一个方法 copyOf, 对一个整型数组进行拷贝, 得到一个新的数组. public static void main8(String[] args) { int[] array = {1,2,3,4,5}; int[] copy = new int[array.length]; for (int i = 0; i < array.length; i++) { copy[i] = array[i]; } System.out.println("copy[]"+Arrays.toString(copy)); } /** * 二分查找 * * 作业内容 * 给定一个有序整型数组, 实现二分查找 * @param * @return */ public static int binarySearch(int[] array,int key) { int left = 0; int right = array.length-1; while (left <= right) { int mid = (left+right)/2; if(array[mid] == key) { return mid; }else if(array[mid] < key) { left = mid+1; }else{ right = mid-1; } } return -1; } public static void main7(String[] args) { int[] array={1,2,3,4,5,6}; int index=Arrays.binarySearch(array,3); System.out.println(index); } public static int isOrder(int[] array) { int ret=0; for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1 - i; j++) { if (array[j] > array[j + 1]) { ret= -1; } if (array[j] < array[j + 1]) { ret= 1; } } } return ret; } public static void main6(String[] args) { int[] array={1,2,3,4}; isOrder(array); int ret=isOrder(array); System.out.println(ret); } /** * 数组是否有序 * * 作业内容 * 给定一个整型数组, 判定数组是否有序(递增) * @param */ public static void bubbleSort1(int[] array){ for (int i = 0; i < array.length-1; i++) { //i代表趟数 boolean flag=false; for (int j = 0; j < array.length-1-i; j++) { //j每一次都从0开始 if(array[j]>array[j+1]){ int tmp=array[j]; array[j]=array[j+1]; array[j+1]=tmp; flag=true; } } if(flag==false){ return; } } } public static void main5(String[] args) { int[] array={10,3,5,2,7}; bubbleSort(array); System.out.println("排序"+Arrays.toString(array)); } public static void bubbleSort(int[] array){ for (int i = 0; i < array.length-1; i++) { for (int j = 0; j < array.length-1-i; j++) { if(array[j]>array[j+1]){ int tmp=array[j]; array[j]=array[j+1]; array[j+1]=tmp; } } } } /* 给定一个整型数组, 实现冒泡排序(升序排序)*/ public static void main4(String[] args) { int[] array={10,3,5,2,7}; bubbleSort(array); System.out.println("排序"+Arrays.toString(array)); } /** * 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 * * * * 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 * * * * 你可以按任意顺序返回答案。 * * * * 示例 1: * * * * 输入:nums = [2,7,11,15], target = 9 * * 输出:[0,1] * * 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 */ /* public static void target(int[] array){ Scanner scanner= new Scanner(System.in); int tar= scanner.nextInt(); for (int i = 0; i < array.length-1 ; i++) { if(array[i]+array[i+1]==tar){ System.out.println(i+"与"+(i+1)); } } } public static void main3(String[] args) { int[] array={2,7,11,13}; target(array); }*/ /** * 改变原有数组元素的值 * * 作业内容 * 实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6} * @param */ /** * 创建的数组,并且赋初始值 * * 作业内容 * 创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100 * @param */ public static void main2(String[] args) { int[] array=new int[100]; int i=1; for( i=0;i<100;i++){ array[i]=i+1; System.out.println(array[i]); } } public static void transform(int array[]){ int i =1; for(i=0;i< array.length;i++){ array[i]=array[i]*2; System.out.print(array[i]); } } public static void main1(String[] args) { int array[]={1,2,3}; transform(array); } }