Java程序实现分组反转数组


可以通过反转指定大小的子数组来实现对数组的分组反转。本文介绍了一种按指定大小分组反转数组的技术。此技术可用于各种计算任务和算法设计。程序接收数组和分组大小作为输入,并按该大小分组反转数组。然后将原始数组和修改后的数组打印到控制台。

问题陈述

编写一个Java程序,按给定大小分组反转数组。示例如下:

输入

Original array = 1 2 3 4 5 6 7 8 9 10

输出

Modified array = 3 2 1 6 5 4 9 8 7 10

按给定大小分组反转数组的步骤

以下是按给定大小分组反转数组的步骤:

  • 初始化一个数组和一个变量来存储分组大小。
  • 打印原始数组。
  • 使用for循环以等于分组大小的步长迭代数组。
  • 在每次迭代中,使用while循环反转给定大小的子数组。
  • 打印修改后的数组。

Java程序实现分组反转数组

这是一个演示如何按指定大小分组反转数组的Java程序:

public class Example {
 public static void main(String[] args) {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
int size = 4;
int n = arr.length;
System.out.print("Original array is: ");
for (int i = 0; i < n; i++)
System.out.print(arr[i] + " ");
for (int i = 0; i < n; i += size) {
 int left = i;
 int right = Math.min(i + size - 1, n - 1);
 int temp;
 while (left < right) {
temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left += 1;
right -= 1;
 }
}
System.out.print("
Modified array is: "); for (int i = 0; i < n; i++) System.out.print(arr[i] + " ");  } }

输出

Original array is: 1 2 3 4 5 6 7 8 9 10
Modified array is: 4 3 2 1 8 7 6 5 10 9

代码解释

程序用值{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}初始化数组arr,并将分组大小设置为4,表示要反转的子数组的大小。数组的长度存储在变量n中。使用for循环迭代数组并打印每个元素来打印原始数组。然后,程序使用另一个for循环size为增量遍历数组,按4个元素一组反转数组。对于每个组,分别在组的开头和结尾初始化两个指针leftright。while循环交换这些指针处的元素,向内移动直到left不再小于right

处理所有组后,使用另一个for循环迭代数组并打印每个元素来打印修改后的数组。最终输出显示了原始数组和修改后的数组,显示了每四个元素一组反转的子数组。

结论

程序成功地按给定大小分组反转了数组。输出显示了原始数组和按大小为4分组反转后的修改后的数组。程序演示了一种高效的反转给定大小子数组的方法,这在数据处理和算法设计等各种应用中非常有用。

更新于:2024年7月24日

3K+ 浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告