逆序的实现思想——数据最远端位置的交换
说到数组中最远端的交换 学过C的人一定会想到指针
也就是数组的指针思想(数组的索引)
指针是可以随时指向数组的任意一个索引的
需要两个指针 一个大指针 一个小指针
大指针 = 最大索引
小指针 = 最小索引
数值换位,借用第三方的变量,临时性存储
(
int max = 最大索引
int min = 0
min++
max–
)
源代码献上
/*
* 数组中的逆序:
* 数组中的元素,进行位置上的交换
* 逆序 不等于 反向遍历
* 就是数组中最远的两个索引进行位置交换,实现数组的逆序
* 使用的是数组的指针思想,就是变量思想,可以随时变换索引
* 反转 reverse
* 实现步骤:
* 1.定义方法,实现数组的逆序
* 2。遍历数组
* 实现数组的最远索引换位置
* 使用临时的第三方变量
*/
public class ArrayMethodTest {
public static void main(String[] args) {
int[] arr = {1,2,3,4};
//调用数组的逆序方法
reverse(arr);
//看到数组的元素,遍历
printArray(arr);
}
/*
* 定义一个方法,实现数组的逆序
* 返回值:没有返回值
* 参数: 数组就是参数
*/
public static void reverse(int[] arr){
//利用循环,实现数组的遍历,遍历过程中,最远端换位,最后两个变量++--
for ( int min = 0 , max = arr.length-1 ; min < max ; min++ , max-- ){
//对数组中的元素进行位置交换
//min索引和max索引的元素交换
//定义变量,保存min索引
int temp = arr[min];
//max索引上的元素,赋值给min索引
arr[min] = arr[max];
//临时变量保存的开始的min赋值给max索引
arr[max] = temp;
}
}
/*
* 漂亮的输出这个数组
* 定义方法,实现功能
* 返回值:void
* 方法参数:数组
*/
public static void printArray(int[] arr){
//输出另一半中括号,不要换行打印
System.out.print("[");
//数组进行遍历、
for( int i = 0 ; i < arr.length ; i++ ){
//判断遍历到的元素,是不是数组的最后一个元素
//如何判断 循环变量 到达 length-1
if( i == arr.length - 1){
//输出数组的元素 和 】
System.out.print(arr[i] + "]");
}else{
//不是数组的最后一个元素,输出元素和逗号
System.out.print(arr[i] + ",");
}
}
System.out.println();
}
}
给个赞再走呗!!!