数组的复制,反转,查找,二分法查找 折半

public class ArrayText3 {
public static void main(String[] args) {
// 数组的复制,反转,查找

String[] arr = new String[]{"jj","dd","mm","dd","gg","aa"};

String[] arr1 = new String[arr.length];
for (int i = 0; i < arr.length; i++) {
arr1[i] = arr[i];
}
for (String s : arr1) {
System.out.print(s+" ");
}
System.out.println();
// 数组的反转
// 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;j-- , i++) {
String temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
for (String s : arr) {
System.out.print(s+" ");
}
System.out.println();

// 查找
String desc = "dd";
boolean isFlag = true;
for (int i = 0; i < arr.length; i++) {
if (desc.equals(arr[i])){
System.out.println(i);
isFlag = false;
break;
}
}
if (isFlag){
System.out.println("没找到");
}
// 二分法查找 折半
int[] arr2 = new int[]{-98,-34,2,34,54,66,79,105,210,333};
int dest = -34;
int head = 0;
int end = arr2.length - 1;

while (head <= end){
int middle = (head +end)/2;
if (dest == arr2[middle]){
System.out.println("找到了:"+middle);
break;
}else if (arr2[middle] > dest){
end = middle - 1;
}else {
head = middle + 1;
}

}


}
}
posted @ 2020-07-05 18:57  GuanErA  阅读(109)  评论(0)    收藏  举报