标签:就是 rgba span bool 思考 目标 数组 二分法 new
数组的复制
注意:此复制不是赋值,是数组元素的复制
public class Hello { public static void main(String[] args){ String[] arr = new String[]{"jj","DD","MM","BB","GG","AA"}; //源数组 String[] arr1 = new String[arr.length]; //目标数组 //数组的复制(区别于数组变量的赋值arr1=arr) for(int i=0;i<arr1.length;i++){ arr1[i] = arr[i]; //将源数组的元素逐一复制到目标数组 } //遍历查看结果 for (int i=0;i<arr1.length;i++){ System.out.print(arr1[i]+" "); } } }
数组的反转
什么是反转?就是将数组元素倒过来排列
思考:就是将最后一个元素排在第一位,将倒数第二个元素排在第二位,也就是要交换元素,那如何交换两个元素?
假如有两个杯子A和B,里面都装有水,如何将A杯、B杯子里面的水交换呢?
可以找第三个杯子C,先将B杯子里面的水倒入C中,B杯子已经空了,再将A杯子里面的水倒入B杯子,最后将C杯子里面的水倒入A杯子
//数组的反转 public class Hello { public static void main(String[] args){ String[] arr = new String[]{"jj","DD","MM","BB","GG","AA"}; for (int i=0;i< arr.length/2;i++){ //注意终止交换条件是除以2 String temp = arr[i]; //temp变量相当于找的第三个杯子 arr[i] =arr[arr.length-i-1]; arr[arr.length-i-1]=temp; } //查看结果 for (int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } } }
数组的查找
线性查找
//数组的线性查找 public class Hello { public static void main(String[] args){ String[] arr = new String[]{"jj","DD","MM","BB","GG","AA"}; String dest = "dD"; boolean isFlag = true; //查看结果 for (int i=0;i<arr.length;i++){ if (dest.equals(arr[i])){ System.out.println("找到指定的元素为:"+i); isFlag = false; break; } } if (isFlag){ System.out.println("没有找到指定的元素"); } } }
二分法查找
前提:所要查找的数组必须有序
//数组的二分法查找 public class Hello { public static void main(String[] args){ int[] arr = new int[]{-98,-34,2,32,46,85,95,129}; int dest = 2; boolean isFlag=true; int head = 0; //初始索引 int end =arr.length-1;//初始末索引 while (head<=end){ int middle = (head+end)/2; if (dest==arr[middle]){ System.out.println("找到指定的元素了,索引为:"+middle); isFlag =false; break; }else if (arr[middle]>dest){ end = middle -1; }else { //相当于arr[middle]<dest head = middle+1; } } if (isFlag){ System.out.println("很遗憾,没有找到"); } } }
标签:就是 rgba span bool 思考 目标 数组 二分法 new
原文地址:https://www.cnblogs.com/king2/p/14310480.html