以下文章提供了 Java 中的 2D 数组排序的概述。数组的数组可以是二维数组。组成二维数组的矩阵表示行和列的集合。因为 2D 数组的元素可以随机访问,所以我们可以使用索引访问 2D 数组中的各个单元,就像使用一维数组一样。
广告 该类别中的热门课程 JAVA 掌握 - 专业化 | 78 课程系列 | 15 次模拟测试在二维数组中,单元格有两个索引,一个是行号,另一个是列号。排序是一种按特定顺序排列二维数组中元素的技术。二维数组可以按升序或降序排列。让我们看看如何在 Java 中以不同的方式对二维数组进行升序和降序排序。
不同的例子如下:
Java 中的 2D 数组排序示例,用于对 2D 数组的所有元素进行排序。
代码:
package jex; import java.util.*; public class demo { // using bubble sort to sort 2D array // sort 2D array same as it is in a 1D array of size n * m public static void sort(int arr[][]) { int i, j, temp; int n=arr.length; int m=arr[0].length; for (i = 0; i < n * m - 1; ++i) { for (j = 0; j < n * m - 1 - i; ++j) { if (arr[j / m][j % m] > arr[(j + 1) / m][(j + 1) % m]) { temp = arr[(j + 1) / m][(j + 1) % m]; arr[(j + 1) / m][(j + 1) % m] = arr[j / m][j % m]; arr[j / m][j % m] = temp; } } } } public static void print(int arr[][]) { int i, j; int n=arr.length; int m=arr[0].length; for (i = 0; i < n; ++i) { for (j = 0; j < m; ++j) { System.out.print(arr[i][j]+" "); } System.out.println(); } } public static void main(String[] args) { Scanner sc=new Scanner(System.in); int[][] arr={ { 5, 12, 17, 12, 23}, { 1, 2, 4, 6, 8}, {21, 14, 7, 19, 27}, { 3, 18, 9, 15, 25} }; System.out.println("Array Before Sorting is : "); print(arr); sort(arr); System.out.println("Array After Sorting is : "); print(arr); } }
输出:
如上面的程序所示,sort() 方法可用于迭代二维数组的每个元素,并且当当前元素大于下一个元素时,则交换数字。最后,打印方法显示二维数组的所有元素。在 main 函数中,在调用 sort() 函数之后和之前创建并打印二维数组,如上面的输出所示。
Java 中的 2D 数组排序示例,按列对 2D 数组的所有元素进行排序。
代码:
package jex; import java.util.*; public class demo { public static void sort(int arr[][]) { int i, j,k, temp; int n=arr.length; int m=arr[0].length; for (k = 0; k < m; ++k) { for (i = 0; i < n; ++i) { for (j = 0; j < n - 1 - i; ++j) { if (arr[j][k] > arr[j + 1][k]) { temp = arr[j + 1][k]; arr[j + 1][k] = arr[j][k]; arr[j][k] = temp; } } } } } public static void print(int arr[][]) { int i, j; int n=arr.length; int m=arr[0].length; for (i = 0; i < n; ++i) { for (j = 0; j < m; ++j) { System.out.print(arr[i][j]+" "); } System.out.println(); } } public static void main(String[] args) { Scanner sc=new Scanner(System.in); int[][] arr={ { 5, 12, 17, 12, 23}, { 1, 2, 4, 6, 8}, {21, 14, 7, 19, 27}, { 3, 18, 9, 15, 25} }; System.out.println("Array Before Sorting is : "); print(arr); sort(arr); System.out.println("Array After Sorting is : "); print(arr); } }
输出:
与上面的重写程序一样,sort() 方法可用于迭代 2D 数组的每个元素并按列对数组进行排序。最后,打印方法显示二维数组的所有元素。在 main 函数中,在调用 sort() 函数之后和之前创建并打印二维数组,如上面的输出所示。
按行对二维数组的所有元素进行排序。
代码:
package jex; import java.util.*; public class demo { // using bubble sort to sort 2D array // sort 2D array same as it is in a 1D array of size n * m public static void sort(int arr[][]) { int i, j,k, temp; int n=arr.length; int m=arr[0].length; for(k=0;k<n;++k){ // applying bubble sort on kth row for(i=0;i<m;++i){ for(j=0;j<m-1-i;++j){ if(arr[k][j]>arr[k][j+1]){ temp = arr[k][j+1]; arr[k][j+1] = arr[k][j]; arr[k][j] = temp; } } } } } public static void print(int arr[][]) { int i, j; int n=arr.length; int m=arr[0].length; for (i = 0; i < n; ++i) { for (j = 0; j < m; ++j) { System.out.print(arr[i][j]+" "); } System.out.println(); } } public static void main(String[] args) { Scanner sc=new Scanner(System.in); int[][] arr={ { 5, 12, 17, 12, 23}, { 1, 2, 4, 6, 8}, {21, 14, 7, 19, 27}, { 3, 18, 9, 15, 25} }; System.out.println("Array Before Sorting is : "); print(arr); sort(arr); System.out.println("Array After Sorting is : "); print(arr); } }
输出:
与上面的重写程序一样,sort() 方法可用于迭代 2D 数组的每个元素并按行对数组进行排序。最后,打印方法显示二维数组的所有元素。在 main 函数中,在调用 sort() 函数之后和之前创建并打印二维数组,如上面的输出所示。
排序是一种按特定顺序排列 2D 数组中元素的技术。例如,在二维数组中,一个单元格有两个索引:行号和列号。
以上是Java 中的二维数组排序的详细内容。更多信息请关注PHP中文网其他相关文章!