数组逆序
数组逆序,并不是逆遍历一遍数组,而是要实现原数组元素倒序存放操作
即原数组存储元素为{11,22,33,44},
逆序后为原数组存储元素变为{44,33,22,11}。
解决思路
- 想完成数组元素逆序,其实就是把数组中索引为start与end的元素进行互换
- 每次互换后,start索引位置后移,end索引位置前移,再进行互换
- 直到start位置超越了end位置,互换结束,此时,数组元素逆序完成。
代码如下(包括逆序方法和遍历方法)
public class ArrayMethod {
public static void main(String[] args){
int[] arr = {11,22,33,44,55};
reverse(arr);//调用逆序方法
printArray(arr);//调用遍历方法
}
public static void reverse(int[] array) {
//利用循环,实现数组遍历,遍历过程中,最远端换位
//for的第一项,定义2个变量, 最后,两个变量++ --
for( int min = 0 , max = array.length-1 ; min < max ; min++,max--){
//对数组中的元素,进行位置交换
//min索引和max索引的元素交换
//定义变量,保存min索引
int temp = array[min];
//max索引上的元素,赋值给min索引
array[min] = array[max];
//临时变量,保存的数据,赋值到max索引上
array[max] = temp;
}
}
//定义方法,实现数组的遍历
public static void printArray(int[] array){
//输出一半中括号,不要换行打印
System.out.print("[");
//数组进行遍历
for (int i=0;i<array.length;i++){
//判断遍历到的元素,是不是数组的最后一个元素
if(i == array.length-1){
//输出数组的元素和]
System.out.println(array[i]+"]");
}
else {
//不是数组的最后一个元素,输出数组元素和逗号
System.out.print(array[i]+",");
}
}
}
}