数组的复制,反转:
public class ArrayTest3 {
public static void main(String[] args) {
String arr[] = new String[]{"AA","BB","CC","DD","EE","FF"};
//数组的复制(区别于数组变量的赋值:arr1 = arr)
String arr1[] = new String[arr.length];
for (int i = 0;i < arr1.length;i++){
arr1[i] = arr[i];
}
//遍历
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
//数组的反转
//方式一:
for(int i = 0 ;i < arr.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 = 0 ;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] + " ");
}
}
}
查找:
package study07;
/*
算法的考察:数组的复制、反转、查找(线性查找、二分法查找)
*/
public class ArrayTest3 {
public static void main(String[] args) {
String arr[] = new String[]{"AA","BB","CC","DD","EE","FF"};
//数组的复制(区别于数组变量的赋值:arr1 = arr)
// String arr1[] = new String[arr.length];
// 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] + " ");
// }
// System.out.println();
//
//数组的反转
//方式一:
// for(int i = 0 ;i < arr.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 = 0 ;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] + " ");
}
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){
// System.out.println("很遗憾,没有找到!");
// }
//二分法查找:
int arr2[] = new int []{-98,-34,2,34,54,66,79,105,210,333};
int dest1 = -34;
int head = 0;//初始的首索引
int end = arr.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("很遗憾,没有找到!");
}
}
}