【问题标题】:Sorting blocks in matrix Java在矩阵Java中对块进行排序
【发布时间】:2018-05-14 23:23:42
【问题描述】:

给定一个 N^2 X N^2 矩阵,它被划分为 NxN 个块,我需要从左到右,从上到下对它们进行排序。

例如:

int[][] matrix1 =  {{11,12,13,14},
                            {15,16,17,18},
                            {19,20,21,22},
                            {23,24,25,26}} ;

    int[][] sortedBlock= {{11, 12, 15, 16}, 
                       {13, 14, 17, 18}, 
                       {19, 20, 23, 24}, 
                       {21, 22, 25, 26}} ; 

    int[][] matBlocks1 = TasksArrays.blocks (matrix1, 2) ;

注意它是如何从 11,12 下降到 13,14 等的。 (matrix1,2) 中的 2 表示每个块的行和列中有多少个数,简而言之,它代表 NxN 块中的“n”。

我的第一行代码必须是:

 public static int[][] blocks (int[][] matrix, int sqrtN)

我试图定义另一个函数来帮助我(最小索引),但我不太确定它会知道从一个块到另一个块.. 这是我想出的,如果您认为它无关紧要,请不要使用

public static int minIndex (int [][] array , int row, int col) {                       
     int min= array[row][col];                                                         
    for (int i = row; i <array.length; i++ )      {                                    
        for ( int j = col; j < array[0].length; j++) {                                 
            if (array[row][col]<min){                                                  
                min=array[row][col];                                                   
            }                                                                          
        }                                                                              
    }                                                                                  
    return min;                                                                        
}      

【问题讨论】:

  • 块的代码在哪里???我们不会为你做作业......
  • 你和this question的作者在同一所学校吗?
  • @RAZ_Muh_Taz 我不知道如何将矩阵作为块来处理,这就是我的问题......我知道如何对它们进行排序但不是作为块以及如何通过输入 sqrtN 来告诉函数,它需要停止检查并开始排序。

标签: java sorting matrix row columnsorting


【解决方案1】:

按照上面描述的方式排序可以通过以下算法实现:

  1. 将矩阵“扁平化”成一个长数组,在我们的例子中:{11,12,13,14, 15,16,17,18...
  2. 使用您喜欢的算法对数组进行排序,我建议使用Arrays.sort()
  3. 将(现已排序的)展平数组复制回原始矩阵,这部分有点棘手,因为您需要考虑如何将展平数组中的项目映射回原始矩阵,但如果您会玩2-3个例子,手动做就可以算出公式了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    相关资源
    最近更新 更多