Java 数组翻转方法:初始化两个指针,一个指向数组首元素,另一个指向末元素。交换指针指向元素。将指针向数组中心移动。重复 2 和 3,直到指针相遇或重叠。

Java 数组翻转方法
翻转数组的步骤:
- 初始化两个指针,指向数组的首尾元素。
- 交换两个指针指向的元素。
- 将两个指针向数组中心移动。
- 重复步骤 2 和 3,直到两个指针相遇或重叠。
示例代码:
public static void reverseArray(int[] arr) {
int leftPtr = 0;
int rightPtr = arr.length - 1;
while (leftPtr < rightPtr) {
int temp = arr[leftPtr];
arr[leftPtr] = arr[rightPtr];
arr[rightPtr] = temp;
leftPtr++;
rightPtr--;
}
}实现细节:
立即学习“Java免费学习笔记(深入)”;
-
指针初始化:
leftPtr指向数组的第一个元素,rightPtr指向数组的最后一个元素。 -
元素交换:使用临时变量
temp交换两个指针指向的元素的值。 -
指针移动:在每次交换后,将
leftPtr向右移动一位,将rightPtr向左移动一位,从而逐级向数组中心移动。 -
遍历条件:当
leftPtr小于rightPtr时,继续遍历和交换元素。该条件保证了数组的所有元素都能被翻转。
注意:
- 原地翻转:该算法不需要额外的空间,因为数组中的元素被原地交换。
-
泛型方法:
reverseArray方法可以接受任何类型元素的数组,只要元素类型实现了Comparable接口。 - 时间复杂度:O(n),其中 n 是数组的长度。该算法需要遍历数组一次,因此它的时间复杂度为线性。











