Java 程序对跨行二维数组进行排序

javaobject oriented programmingprogramming更新于 2024/11/3 17:16:17

数据结构中的排序意味着根据问题或给定的运算符重新排列给定的元素列表或某个数组。此运算符决定元素的新顺序。数组是某些元素的集合,可以是任何占用相邻内存位置的东西。在这里,我们将多个相同类型的元素存储在一起。排序有助于我们重新排列这些元素。例如,15,8,12,28 是未排序数组的元素,排序后,28,15,12,8 变为按降序排列的排序数组。

本文将演示如何借助 Java 程序对跨行二维数组进行排序。我们将使用三种不同的方法来获得解决方案。首先,我们将使用 vector() 方法,其次是库函数 Array.sort,最后我们将使用冒泡排序。

Vector() 方法的算法

  • 步骤 1 - 导入所有必需的库。

  • 步骤 2 - 在排序之前打印并显示矩阵。

  • 步骤 3 - 创建 Vector 类的对象。

  • 步骤 4 - 在向量中添加行的元素。

  • 步骤 5 - 对向量进行排序。

  • 步骤 6 - 从向量中删除元素。

  • 步骤 7 - 打印并显示排序后的矩阵。

  • 步骤 8 - 使用循环重复,直到所有行都排序完毕。

  • 步骤 9 - 完成

语法

Vector v = new Vector<>();

以下程序中使用的函数 -

  • removeAll() - 此函数用于从我们为排序而存储的向量中删除所有元素。

  • Vector.get(element) - get() 方法有助于获取存储在特定位置的向量元素。

  • add() 函数将向量中的元素相加。

  • Collection.sort() - 此方法用于对向量进行排序。

使用库函数 arrays.sort 的算法

  • 步骤 1 - 导入所有必需的库。

  • 步骤 2 - 逐个对单个元素进行排序行。

  • 步骤 3 - 使用函数 Arrays.sort()。

  • 步骤 4 - 打印并显示排序后的矩阵。

语法

Array.sort(arr[i]);

冒泡排序算法

  • 步骤 1 - 导入所有必需的库。

  • 步骤 2 - 使用循环遍历矩阵的行和列。

  • 步骤 3 - 使用另一个循环进行比较和交换。

  • 步骤 4 - 交换元素。

  • 步骤 5 - 打印排序后的矩阵。

语法

begin BubbleSort(arr)
for all array elements
   if arr[i] > arr[i+])
      swap(arr[i], arr[i+1]
   end if
end for
return arr
end BubbleSort

方法

  • 使用 Vector()

  • 使用 Arrays,sort()

  • 使用冒泡排序()

方法 1:Vector()

示例

import java.io.*;
import java.util.*;

public class WC {
   public static void main(String[] args) throws java.lang.Exception {
      int[][] arr = {
         {1, 3, 8, 5, 9},
         {5, 3, 1, 7, 4},
         {0, 5, 9, 2, 6},
         {4, 6, 3, 1, 0},
         {3, 5, 8, 9, 2}
      };

      System.out.println("Array without sorting");
      for (int i = 0; i < 5; i++) {
         for (int j = 0; j < 5; j++) {
            System.out.print(arr[i][j] + " ");
         }
         System.out.println();
      }
      System.out.println();

      List<Integer> space = new ArrayList<>();

      for (int i = 0; i < 5; i++) {
         for (int j = 0; j < 5; j++) {
            space.add(arr[i][j]);
         }

         Collections.sort(space);

         for (int j = 0; j < 5; j++) {
            arr[i][j] = space.get(j);
         }

         space.clear();
      }

      System.out.println("Array after sorting");
      for (int i = 0; i < 5; i++) {
         for (int j = 0; j < 5; j++) {
            System.out.print(arr[i][j] + " ");
         }
         System.out.println();
      }
   }
}

输出

Array without sorting
1 3 8 5 9 
5 3 1 7 4 
0 5 9 2 6 
4 6 3 1 0 
3 5 8 9 2 
Array after sorting
1 3 5 8 9 
1 3 4 5 7 
0 2 5 6 9 
0 1 3 4 6 
2 3 5 8 9

以上是 vector() 方法的输出,我们首先打印了未排序的矩阵,程序执行后,显示排序后的矩阵。

方法 2:Arrays.sort()

示例

import java.io.*;
import java.util.Arrays;

public class ArraySort {

   static int sortrowWise ( int arr [][]) {

      for (int i =0; i< arr.length; i++)
      Arrays.sort(arr[i]);

      for (int i =0; i < arr.length;i++) {

         for( int j=0; j < arr[i].length; j++)

         System.out.print(arr[i][j] + "");
         System.out.println();
      }
      return 0;
   }
   public static void main(String args[]){
      int arr[][] = {  { 9,2,6,4,5},
                        { 8,3,7,0,2},
                        { 5,3,8,1,2},
                        { 3,5,7,1,0}
                     };
      sortrowWise(arr);

   }
}

输出

24569
02378
12358
01357

以上是 Arrays.sort 方法的输出,它是我们使用名为 Arrays.sort() 的库之后的排序矩阵。

方法 3:冒泡排序()

示例

import java.io.*;

public class BubbleSort {
   static int sortRowWise (int arr[][]) {

      for (int i= 0; i < arr.length; i++) {

         for (int j=0; j< arr[i].length; j++) {

            for (int k=0; k<arr[i].length - j -1; k++ ) {
               if (arr[i][k]> arr[i] [k+1]) {
                  int t = arr[i][k];
                  arr[i][k] = arr[i][k + 1];
                  arr[i][k + 1] = t;
               }
            }
         }
      }
      for (int i=0; i< arr.length; i++) {
         for (int j =0; j< arr [i].length; j++)

            System.out.print(arr[i][j] + "");
            System.out.println();
      }
      return 0;
   }
   public static void main (String arg[]){

      int arr[][] = { { 0,3,6,9,4},
                        { 7,5,3,8,1},
                        { 2,5,3,9,0},
                        { 1,7,4,0,2} };
      sortRowWise(arr);                            
   }
}

输出

03469
13578
02359
01247

以上是我们用来对矩阵进行排序的冒泡排序方法的输出。这里我们使用了比较和交换,这给了我们一个排序矩阵。

结论

在上面的文章中,我们学习了如何使用不同的方法(如 Vector() 方法、Arrays.sort 函数和冒泡排序)对行数组进行排序。所有方法都有一个独特的算法,可以帮助我们对矩阵进行排序。


相关文章


有用资源