Java 中的二维数组排序

10 Sept 2024 | 4 分钟阅读

由数组组成的数组可以构成一个二维数组。二维数组由矩阵组成,显示行和列的集合。我们可以使用索引来访问二维数组中的单个单元格,就像访问一维数组一样,因为二维数组的元素可以随机访问。

在二维数组中,每个单元格都有两个索引:行号和列号。按特定顺序排列二维数组元素的一种方法是对它们进行排序。二维数组可以按升序或降序排列。以下是在 Java 中以升序和降序对二维数组进行排序的一些方法。

主要有两种方法。它们如下:

  1. 使用按列排序的方法
  2. 使用按行排序的方法

示例 1

输入

排序前的数组是

{ 11, 39, 27, 42 },

{ 10, 90, 93, 91 },

{ 56, 89, 54, 78 },

{ 20, 65, 24, 64 }

输出

排序后的数组是

{ 10, 39, 24, 42 },

{ 11, 65, 27, 64 },

{ 20, 89, 54, 78 },

{ 56, 90, 93, 91 }

解释

在这里,二维数组是使用按列排序的方法进行排序的。

示例 2

输入

排序前的数组是

{ 11, 39, 27, 42 },

{ 10, 90, 93, 91 },

{ 56, 89, 54, 78 },

{ 20, 65, 24, 64 }

输出

排序后的数组是

{ 11, 27, 39, 42},

{ 10, 90, 91, 93},

{ 54, 56, 78, 89},

{ 20, 24, 64, 65}

解释

在这里,二维数组是使用按行排序的方法进行排序的。

方法:使用按列排序的方法

一个在 Java 中排序二维数组的例子,以便其所有元素都按列排列。

实施

文件名: ColumnMethod.java

输出

The Array Before Sorting is given by : 
11 39 27 42 
10 90 93 91 
56 89 54 78 
20 65 24 64 
The Array After Sorting is given by : 
10 39 24 42 
11 65 27 64 
20 89 54 78 
56 90 93 91

复杂度分析

按列排序方法的时​​间复杂度为 O(N3)。

方法:使用按行排序的方法

按行对二维数组的所有元素进行排序的示例。

实施

文件名: RowMethod.java

输出

The Array Before Sorting is given by : 
11 39 27 42 
10 90 93 91 
56 89 54 78 
20 65 24 64 
The Array After Sorting is given by : 
11 27 39 42 
10 90 91 93 
54 56 78 89 
20 24 64 65

复杂度分析

通常,按行排序方法的时​​间复杂度为 O(N*M*M),在这种情况下 M 为常数,则简化为 O(N2),其中 N 代表数组的长度。