import java.util.Scanner;
public class ArrayTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] arr = new String[] {"JJ","DD","MM","BB","GG","AA"};
for(int i = 0; i < arr.length; i++) {
System.out.print("\t" + arr[i] + "\t");
}
System.out.println();
数组复制:
System.out.print("复制:\t");
String[] arr1 = new String[arr.length];
for(int i = 0; i < arr1.length; i++) {
arr1[i] = arr[i];
System.out.print(arr1[i] + "\t\t");
}
System.out.println();
数组反转:
System.out.print("反转:\t");
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.print(arr[i] + "\t\t");
}
线性查找:
String dest = "BB";
System.out.print("指定元素为:" + dest + "--------");
boolean isFlag = true;
for(int i = 0; i < arr.length; i++) {
if(dest.equals(arr[i])) {
System.out.println("找到了指定的元素,位置为第" + (i + 1) + "个");
isFlag = false;
break;
}
}
if(isFlag) {
System.out.println("很遗憾,没有找到!");
}
二分法查找:
int[] arr2 = new int[] {-98,-34,2,34,54,66,79,105,210,333};
for(int i = 0; i < arr2.length; i++) {
System.out.print("\t" + arr2[i]);
}
System.out.println();
System.out.print("请输入要找的元素:");
int dest1 = sc.nextInt();
System.out.print("指定元素为:" + dest1 + "--------");
int head = 0;
int end = arr2.length;
boolean isFlag1 = true;
while(head <= end) {
int middle = (head + end) / 2;
if(dest1 == arr2[middle]) {
System.out.println("找到了指定的元素,位置为第" + (middle + 1) + "个");
isFlag1 = false;
break;
}else if(arr2[middle] > dest1) {
end = middle - 1;
}else {
head = middle + 1;
}
}
if(isFlag1) {
System.out.println("很遗憾,没有找到!");
}
}
}