package com.fun;
public class Test3 {
public static void main(String[] args) {
String[] arr = new String[] {"JJ","DD","GG","BB","MM","AA"};
//数组的复制(区别于数组变量的赋值:arr1 = arr)
String[] arr1 = new String[arr.length];
for(int i = 0 ; i < arr1.length; i++) {
arr1 [i] = arr [i] ;
//System.out.println(arr1[i]);
}
//数组的反转
//方法一
// for(int i = 0;i<arr1.length / 2;i++) {
// String temp = arr[i];
// arr[i] = arr[arr.length - i - 1];
// arr[arr.length - i - 1] = temp;
// }
//方法二
for(int i = 0,j = arr.length-1;i < j;i++,j-- ) {
String temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//遍历
for(int i = 0;i<arr.length;i++) {
System.out.println(arr[i] + "\t");
}
System.out.println();
//查找
//线性查找
String dest = "BB";
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 == true) {
System.out.println("很遗憾,没找到指定元素。");
}
//二分法查找
//前提:所要查找的数组必须有序。
int[] arr2 = new int[]{-98,-34,-25,8,43,46,65,66,120,198,998};
int dest1 = 120;
int head = 0;//初始的首索引
int end = arr2.length - 1;//初始的末索引
boolean isFlag1 = true;
while(head <= end) {
int middle = (head + end) / 2;
if(dest1 == arr2[middle]) {
System.out.println("找到了指定元素,位置为:" + middle);
isFlag1 = false;
break;
}
else if(arr2[middle] > dest1) {
end = middle - 1;
}
else {
head = middle + 1;
}
}
if(isFlag1) {
System.out.println("很遗憾,没找到指定元素。");
}
}
}
数组的复制,数组的反转,遍历,线性查找,二分法查找
于 2022-10-25 17:44:05 首次发布