螺旋矩阵java代码 螺旋矩阵java实现

java冒泡排序法代码冒泡排序是比较经典的排序算法 。代码如下:
for(int i=1;iarr.length;i++){
for(int j=1;jarr.length-i;j++){
//交换位置
}
拓展资料:
原理:比较两个相邻的元素,将值大的元素交换至右端 。
思路:依次比较相邻的两个数,将小数放在前面,大数放在后面 。即在第一趟:首先比较第1个和第2个数 , 将小数放前,大数放后 。然后比较第2个数和第3个数,将小数放前 , 大数放后,如此继续,直至比较最后两个数,将小数放前 , 大数放后 。重复第一趟步骤 , 直至全部排序完成 。
第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;
第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;
依次类推,每一趟比较次数-1;
……
举例说明:要排序数组:int[] arr={6,3,8,2,9,1};
for(int i=1;iarr.length;i++){
for(int j=1;jarr.length-i;j++){
//交换位置
}
参考资料:冒泡排序原理
java螺旋矩阵求助!package cn.com.micc.javatwo; //根据实际情况修改
//蜗牛螺旋矩阵 请仔细研究矩阵阶数变化时数据螺旋矩阵java代码的迁移规律
//上一阶矩阵会"整体"向右上或左下移动
public class AntiClockWiseArray {
public static int[][] getResult(int n) {
int[][] n1 = new int[1][1];
n1[0][0] = 1;
if (n == 1)
return n1;
int[][] result = new int[n][n];
int[][] temp = getResult(n - 1);
if (0 == (n - 1) % 2)
result = LeftDownMove(temp, n - 1); //n-1阶矩阵向左下移动
else
result = RightUpMove(temp, n - 1);//n-1阶矩阵向右上移动
return result;
}
public static int[][] LeftDownMove(int[][] in, int moment) {
int temp = moment * moment;
int nums = moment * 2 + 1;
int[][] out = new int[moment + 1][moment + 1];
//新矩阵补入上一阶矩阵螺旋矩阵java代码的值
for (int i = 0; imoment; ++i)
for (int j = 0; jmoment; ++j)
out[i + 1][j] = in[i][j];
//两个循环添加新矩阵新值
for (int k = 0; kmoment + 1; ++k)
out[0][k] = temp + nums - k;
for (int l = 1; lmoment + 1; ++l)
out[l][moment] = temp + nums - moment - l;
return out;
}
public static int[][] RightUpMove(int[][] in, int moment) {
int temp = moment * moment;
int nums = moment * 2 + 1;
int[][] out = new int[moment + 1][moment + 1];
//新矩阵补入上一阶矩阵螺旋矩阵java代码的值
for (int i = 0; imoment; ++i)
for (int j = 0; jmoment; ++j)
out[i][j + 1] = in[i][j];
//两个循环添加新矩阵新值
for (int k = 0; kmoment + 1; ++k)
out[k][0] = temp + 1 + k;
for (int l = 1; lmoment + 1; ++l)
out[moment][l] = temp + moment + 1 + l;
return out;
}
public static void printArray(int[][] temp, int n) {
//格式化打印矩阵
for(int i = 0; in; ++i)
{
for(int j = 0; jn; ++j)
System.out.printf("%5d", temp[i][j]);
System.out.println();
}
}
public static void main(String[] args) {
printArray(getResult(6), 6); //输入阶数
}
}
output:
10阶
82 81 80 79 78 77 76 75 74 73
83 50 49 48 47 46 45 44 43 72
84 51 26 25 24 23 22 21 42 71
85 52 27 10987 20 41 70
86 53 28 11216 19 40 69
87 54 29 12345 18 39 68
88 55 30 13 14 15 16 17 38 67
89 56 31 32 33 34 35 36 37 66
90 57 58 59 60 61 62 63 64 65
91 92 93 94 95 96 97 98 99100
谁有螺旋矩阵的说明?关于螺旋矩阵的说法不一,这里指的是形如

推荐阅读