1.0数组的反转
1.1方法一
public class Test {
public static void main(String[] args) {
//初始化
String [] arr= new String[] {"123","456","789"};
//数组的反转
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;i < arr.length; i++) {
System.out.println(arr[i] + " ");
}
}
}
1.2方法二
public class Test {
public static void main(String[] args) {
//初始化
String [] arr= new String[] {"123","456","789"};
//数组的反转
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] + " ");
}
}
}
2.0数组的查找
2.0.1线性查找
public class Test {
public static void main(String[] args) {
//初始化
String [] arr= new String[] {"123","456","789"};
String sear = "456";
boolean falg = true;
for(int i = 0;i < arr.length;i++) {
if(sear.equals(arr[i])) {//因为是字符串类型的,所以不可以==判断
System.out.println("找到元素的位置为" + i);
falg = false;
break;
}
}
if(falg) {//如果没有改变flag的值
System.out.println("没有查找到");
}
}
}
2.0.2二分法查找(折半查找)
public class Test {
public static void main(String[] args) {
//初始化
int [] arr = new int[] {1,2,3,5,8,9,16};
int search = 4;
//数组的索引
int head = 0;
int end = arr.length - 1;
boolean flag = true;
while(head <= end) {
int mid =(end + head)/2;
if(search == arr[mid]) {
System.out.println("指定数字的位置为" + mid);
flag = false;
break;
}else if(search > arr[mid]){
head = mid + 1;
}else {
end = mid - 1;
}
}
if(flag) {
System.out.println("抱歉,没有找到哦!");
}
}
}