`
ahang8415
  • 浏览: 46715 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java实现的Matrix的螺旋排序

    博客分类:
  • Java
阅读更多

package Matrix;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class TestMatrix {
 
 public static void main(String[] args) {
  TestMatrix tm = new TestMatrix();
  Integer[][] matrix = tm.sortMatrix(4);
  for (int i = 0; i < 4; i++) {
   for (int j = 0; j < matrix[i].length; j++) {
    System.out.print(matrix[i][j]+",");
   }
   System.out.println();
  }
 }
 
 
 Integer[][] sortMatrix(int x)
 {
  Integer[] temp = new Integer[]{2,4,1,3,5,6,7,8,9,10,12,11,13,14,15};
  List numList = new ArrayList();
  Collections.addAll(numList, temp);
  Collections.sort(numList);
  Integer[][] numMatrix = new Integer[x][x];
  getMatrix(x, numList, numMatrix, 0, 0, 0);
  
  minusZero(numMatrix);
  return numMatrix;
 }
 
 
 void minusZero(Integer[][] numMatrix)
 {
  for (int i = 0; i <numMatrix.length; i++) {
   for (int j = 0; j < numMatrix[i].length; j++) {
    if(numMatrix[i][j] == null)
    {
     numMatrix[i][j] = 0;
    }
   }
  }
 }
 
 void getMatrix(int x, List numList, Integer[][] numMatrix, int list_index, int rowNum, int colNum)
 {
  int col_b = colNum+1;
  int row_r = x - 2;
  int col_u = x - 1;
  for (int i = list_index; i < numList.size(); i++) {
   if(i < numMatrix.length*numMatrix.length)
   {
    if(rowNum < x)
    {
     numMatrix[rowNum][colNum] = (Integer) numList.get(i);
     rowNum++;
    }
    else if(rowNum >= x && col_b < x)
    {
     numMatrix[rowNum-1][col_b] = (Integer) numList.get(i);
     col_b++;
    }
    else if(rowNum >= x && col_b >= x && row_r >= 0)
    {
     numMatrix[row_r][x-1] = (Integer) numList.get(i);
     row_r--;
     if(row_r < 0)
     {
      continue;
     }
    }
    else if (rowNum >= x && col_b >= x && row_r < 0 && col_u > 1)
    {
     numMatrix[colNum][col_u-1] = (Integer) numList.get(i);
     col_u--;
    }
    else
    {
     list_index = i;
     colNum++;
     rowNum = colNum;
     x = x - 1;
     if(colNum < 2)
     {
       getMatrix(x, numList, numMatrix, list_index, rowNum, colNum);
       break;
      
     }
     
    }
   }
  }
 }
 
}

 

 

/*结果如下

 

 

1,12,11,10,
2,13,0,9,
3,14,15,8,
4,5,6,7,

 

 

*/

 

如果矩阵数大于list的数,以0补上。

写的不好,请各位看官不要见笑!

如果有更好的方法,请贴出来,让我学习一下。谢谢

0
0
分享到:
评论

相关推荐

    java实现螺旋数据

    标题“Java实现螺旋数据”指的是在Java编程中创建一种特殊的数据结构,该结构按照螺旋顺序填充数字。描述进一步解释了具体实现方式:用户通过键盘输入一个介于1到20之间的整数,这个数字将决定矩阵的大小。然后,...

    矩阵运算Matrix,java实现

    本篇将详细探讨"矩阵运算Matrix,java实现"这个主题,包括矩阵的基本概念、主要运算以及如何在Java中实现这些功能。 矩阵是由有序的数列构成的矩形阵列,通常用大写字母表示,如A、B等。每个数称为矩阵的元素,用a_...

    java_matrix类库

    Java_matrix类库是一个专门为Java开发者设计的工具,用于进行矩阵相关的计算和操作。这个库包含了对矩阵的创建、初始化、矩阵运算以及矩阵算法的实现,是处理数学问题,特别是线性代数问题时的重要工具。以下是对这...

    Java实现n阶螺旋方阵

    在Java中实现n阶螺旋方阵是一项常见的编程任务,这有助于理解和掌握数组的操作以及循环控制结构的使用。下面我们将深入探讨如何用Java来实现这个功能。 首先,我们需要了解螺旋矩阵的基本概念。假设我们有一个n阶的...

    java编写的螺旋矩阵很经典

    下面我们将详细探讨螺旋矩阵的原理、Java实现方法以及相关知识点。 首先,让我们理解螺旋矩阵的概念。假设我们有一个n×n的二维数组,我们从左上角开始,沿着顺时针方向填充数字。当行或列到达边界后,我们会转向下...

    Java实现螺旋矩阵的示例

    Java 实现螺旋矩阵的示例是指通过 Java 语言实现螺旋矩阵的算法,螺旋矩阵是指将矩阵中的元素按照顺时针螺旋顺序排列的矩阵。下面将详细介绍 Java 实现螺旋矩阵的示例。 1. 螺旋矩阵的定义 螺旋矩阵是指将矩阵中的...

    java矩阵包Jampack: A Java Matrix Package

    ampack (JAva Matrix PACKage) is a collection of cooperating classes designed to perform matrix computations in Java applications. Jampack was developed by the author at NIST and the University of ...

    Java实现求解一元n次多项式的方法示例

    Java 实现求解一元 n 次多项式的方法示例 Java 实现求解一元 n 次多项式是 Java 编程中的一种常见操作,涉及到矩阵运算和高斯消元法等技术。本文将详细介绍 Java 实现求解一元 n 次多项式的方法,并提供相应的代码...

    The Matrix Rain.java

    java代码,黑客帝国代码雨源码,main方法最后要创建Rain对象即可。

    LeetCode题解(java语言实现).pdf

    * Median of Two Sorted Arrays Java:该题目要求找到两个排序数组的中位数,实现方法使用了二分查找算法。 * Regular Expression Matching in Java:该题目要求匹配字符串和正则表达式,实现方法使用了动态规划算法...

    曲线拟合计算(java实现)

    在这个项目中,作者使用Java实现了曲线和直线的拟合功能。 在Java中,曲线拟合通常涉及到数值分析和线性代数的知识。首先,我们需要理解数据点的坐标,这些点可以表示为`(x, y)`对,其中`x`是自变量,`y`是因变量。...

    DTW的Java实现

    动态时间规整(Dynamic Time Warping,简称DTW)...总之,DTW是处理时间序列数据的一种强大工具,Java实现使得它可以在各种Java项目中方便地应用。通过理解其基本原理并查看提供的代码,你可以深入学习并掌握这一技术。

    Kmeans文本聚类java实现

    在自然语言处理领域,文本聚类是一种常见的无监督学习方法,...总的来说,Java实现KMeans文本聚类涉及到数据预处理、向量化、聚类算法实现和性能优化等多个方面,理解这些知识点对于提升文本分析项目的效果至关重要。

    Java实现的求逆矩阵算法示例

    Java实现的求逆矩阵算法示例 本文主要介绍了Java实现的求逆矩阵算法,涉及java基于数组的矩阵遍历与运算相关操作技巧。下面将详细介绍该算法的实现细节。 矩阵逆矩阵算法 矩阵逆矩阵算法是线性代数中的一种重要...

    Bayes自然图像抠图(Java实现)(看评论酌情下载)

    "Bayes自然图像抠图(Java实现)"是一个Java编程实现的算法,它利用贝叶斯理论来处理这一问题。贝叶斯方法是一种统计推理方法,它通过后验概率来更新先验概率,从而得出最佳的假设或预测。在图像处理中,这种思想被...

    Java ejml矩阵包

    由于Ejml是纯Java实现,因此它可以轻松地与其他Java项目集成,无需额外的依赖或编译步骤。 在压缩包中,`ejml.jar`是Ejml库的可执行文件,包含了所有必要的类和方法,可以直接导入到Java项目中使用。`java中的高效...

    hadoop Big matrix muiltiple on java source.zip

    这两个文件是关于如何在Hadoop环境下使用Java实现大规模矩阵乘法的示例。 首先,我们要理解矩阵乘法在大数据处理中的重要性。矩阵运算广泛应用于机器学习、数据挖掘和图像处理等众多领域,尤其是当处理的数据量非常...

    vecMath,含有java写的matrix类,有矩阵求逆等操作

    在Java 3D中,`Matrix3d`和`Matrix4d`常用于构建和应用变换矩阵。例如,你可以创建一个`Matrix3d`对象来表示一个旋转,通过设置其元素来实现特定角度的旋转。同样,`Matrix4d`可以用来处理更复杂的四维空间变换,如...

    java实现网页排名算法

    在本话题中,我们将专注于Java实现PageRank算法的详细过程。 PageRank是由Google创始人拉里·佩奇(Larry Page)提出的,它的基本思想是:一个被许多高质量网页链接的页面具有较高的PageRank值。这个概念反映了...

    ARRAY实现MATRIX运算

    在本主题"ARRAY实现MATRIX运算"中,我们将深入探讨如何利用数组来实现矩阵(Matrix)的运算,特别是针对C++语言的实现。矩阵是数学中的一个二维数组,广泛应用于线性代数、图像处理、物理学等领域。 1. **数组表示...

Global site tag (gtag.js) - Google Analytics