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补上。
写的不好,请各位看官不要见笑!
如果有更好的方法,请贴出来,让我学习一下。谢谢
分享到:
相关推荐
标题“Java实现螺旋数据”指的是在Java编程中创建一种特殊的数据结构,该结构按照螺旋顺序填充数字。描述进一步解释了具体实现方式:用户通过键盘输入一个介于1到20之间的整数,这个数字将决定矩阵的大小。然后,...
本篇将详细探讨"矩阵运算Matrix,java实现"这个主题,包括矩阵的基本概念、主要运算以及如何在Java中实现这些功能。 矩阵是由有序的数列构成的矩形阵列,通常用大写字母表示,如A、B等。每个数称为矩阵的元素,用a_...
Java_matrix类库是一个专门为Java开发者设计的工具,用于进行矩阵相关的计算和操作。这个库包含了对矩阵的创建、初始化、矩阵运算以及矩阵算法的实现,是处理数学问题,特别是线性代数问题时的重要工具。以下是对这...
在Java中实现n阶螺旋方阵是一项常见的编程任务,这有助于理解和掌握数组的操作以及循环控制结构的使用。下面我们将深入探讨如何用Java来实现这个功能。 首先,我们需要了解螺旋矩阵的基本概念。假设我们有一个n阶的...
下面我们将详细探讨螺旋矩阵的原理、Java实现方法以及相关知识点。 首先,让我们理解螺旋矩阵的概念。假设我们有一个n×n的二维数组,我们从左上角开始,沿着顺时针方向填充数字。当行或列到达边界后,我们会转向下...
Java 实现螺旋矩阵的示例是指通过 Java 语言实现螺旋矩阵的算法,螺旋矩阵是指将矩阵中的元素按照顺时针螺旋顺序排列的矩阵。下面将详细介绍 Java 实现螺旋矩阵的示例。 1. 螺旋矩阵的定义 螺旋矩阵是指将矩阵中的...
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 编程中的一种常见操作,涉及到矩阵运算和高斯消元法等技术。本文将详细介绍 Java 实现求解一元 n 次多项式的方法,并提供相应的代码...
java代码,黑客帝国代码雨源码,main方法最后要创建Rain对象即可。
* Median of Two Sorted Arrays Java:该题目要求找到两个排序数组的中位数,实现方法使用了二分查找算法。 * Regular Expression Matching in Java:该题目要求匹配字符串和正则表达式,实现方法使用了动态规划算法...
在这个项目中,作者使用Java实现了曲线和直线的拟合功能。 在Java中,曲线拟合通常涉及到数值分析和线性代数的知识。首先,我们需要理解数据点的坐标,这些点可以表示为`(x, y)`对,其中`x`是自变量,`y`是因变量。...
动态时间规整(Dynamic Time Warping,简称DTW)...总之,DTW是处理时间序列数据的一种强大工具,Java实现使得它可以在各种Java项目中方便地应用。通过理解其基本原理并查看提供的代码,你可以深入学习并掌握这一技术。
在自然语言处理领域,文本聚类是一种常见的无监督学习方法,...总的来说,Java实现KMeans文本聚类涉及到数据预处理、向量化、聚类算法实现和性能优化等多个方面,理解这些知识点对于提升文本分析项目的效果至关重要。
Java实现的求逆矩阵算法示例 本文主要介绍了Java实现的求逆矩阵算法,涉及java基于数组的矩阵遍历与运算相关操作技巧。下面将详细介绍该算法的实现细节。 矩阵逆矩阵算法 矩阵逆矩阵算法是线性代数中的一种重要...
"Bayes自然图像抠图(Java实现)"是一个Java编程实现的算法,它利用贝叶斯理论来处理这一问题。贝叶斯方法是一种统计推理方法,它通过后验概率来更新先验概率,从而得出最佳的假设或预测。在图像处理中,这种思想被...
由于Ejml是纯Java实现,因此它可以轻松地与其他Java项目集成,无需额外的依赖或编译步骤。 在压缩包中,`ejml.jar`是Ejml库的可执行文件,包含了所有必要的类和方法,可以直接导入到Java项目中使用。`java中的高效...
这两个文件是关于如何在Hadoop环境下使用Java实现大规模矩阵乘法的示例。 首先,我们要理解矩阵乘法在大数据处理中的重要性。矩阵运算广泛应用于机器学习、数据挖掘和图像处理等众多领域,尤其是当处理的数据量非常...
在Java 3D中,`Matrix3d`和`Matrix4d`常用于构建和应用变换矩阵。例如,你可以创建一个`Matrix3d`对象来表示一个旋转,通过设置其元素来实现特定角度的旋转。同样,`Matrix4d`可以用来处理更复杂的四维空间变换,如...
在本话题中,我们将专注于Java实现PageRank算法的详细过程。 PageRank是由Google创始人拉里·佩奇(Larry Page)提出的,它的基本思想是:一个被许多高质量网页链接的页面具有较高的PageRank值。这个概念反映了...
在本主题"ARRAY实现MATRIX运算"中,我们将深入探讨如何利用数组来实现矩阵(Matrix)的运算,特别是针对C++语言的实现。矩阵是数学中的一个二维数组,广泛应用于线性代数、图像处理、物理学等领域。 1. **数组表示...