先看一下交换两个数的代码:
- int a=2,b=3,tmp; //a和b是两个要交换的变量,tmp是一个临时变量
-
- tmp=a; //交换第一步:把a保存到临时变量中
- a=b; //交换第二步:交换变量值
- b=tmp; //交换第三步:把临时变量赋给b
下面,我将通过一个完整的Java示例来展示如何实现一维数组的逆序交换。
- public class ArrayReverse {
- public static void main(String[] args) {
- // 定义一个示例数组
- int[] arr = {1, 2, 3, 4, 5, 6, 7};
-
- // 打印原始数组
- System.out.println("原始数组:");
- printArray(arr);
-
- // 调用逆序交换函数
- reverseArray(arr);
-
- // 打印逆序后的数组
- System.out.println("逆序后的数组:");
- printArray(arr);
- }
-
- /**
- * 逆序交换数组元素
- *
- * @param arr 需要逆序交换的数组
- */
- public static void reverseArray(int[] arr) {
- // 获取数组的长度
- int n = arr.length;
-
- // 使用两个指针,分别从数组的两端开始
- for (int i = 0; i < n / 2; i++) {
- // 交换两端元素
- int temp = arr[i];
- arr[i] = arr[n - 1 - i];
- arr[n - 1 - i] = temp;
- }
- }
-
- /**
- * 打印数组元素
- *
- * @param arr 需要打印的数组
- */
- public static void printArray(int[] arr) {
- for (int i = 0; i < arr.length; i++) {
- System.out.print(arr[i] + " ");
- }
- System.out.println(); // 换行
- }
- }
main方法:这是程序的入口点。首先,我们定义了一个示例数组
arr
,并调用printArray
方法打印原始数组。然后,我们调用reverseArray
方法对数组进行逆序交换,并再次调用printArray
方法打印逆序后的数组。reverseArray方法:这个方法是实现数组逆序交换的核心。它接收一个整型数组
arr
作为参数。我们使用两个指针i
和n - 1 - i
,分别指向数组的开始和结束位置。在循环中,我们不断交换这两个位置上的元素,直到遍历到数组的中间位置(对于奇数长度的数组,中间元素不需要交换)。printArray方法:这个辅助方法用于打印数组的元素。它遍历数组并使用
System.out.print
方法逐个打印数组元素,最后通过System.out.println
方法实现换行。
当你运行上述代码时,你将看到以下输出结果:
- 原始数组:
- 1 2 3 4 5 6 7
- 逆序后的数组:
- 7 6 5 4 3 2 1