- 4
- 0
- 约3.58千字
- 约 6页
- 2017-12-27 发布于河南
- 举报
螺旋矩阵:算法及程序点评
螺旋矩阵:算法及程序点评
终于把 libaojian 的程序看完了,是一个遍历边法,并把每四边组织成一个圈。里面有一点涉及数学模型的计算,可惜不是自发的,是因为调用了method,值传不回来,只好计算了。更重要的是由于一个算法上的缺陷,导致其不能依顺序放值,只好计算。
libaojian 的程序在算法上有一个缺陷和一个错误。缺陷是思维级的,而错误是编程技能级的。所以我把它们分开来说了。
一个缺陷是指抽象的时候没有准确地反映问题的实质。螺旋矩阵的每一圈都是有顺序的,先上,至右,再至下,最后是左边。而他只是把四边简单地分成两行两列,把隐含的内在联系弄丢了。结果只好在控制逻辑上弥补,导致控制逻辑过于复杂。
一个错误是指在Vector getvecs(..)内,col1在不同的情况下有双重含义。在row1存在的时候,col1从row1下一行算起。而对于最后的奇数列,row1不存在,col1从第一行算起。这一歧义直接导致Vector转换成Array时,控制逻辑过于复杂。
除了算法缺陷和错误外,程序里有大量冗余的IF,既不出于算法的需求,也不出于控制逻辑的需求,属于逻辑思维不够严密,这在新手身上很常见。总的来说,libaojian 的编程技能有大量提高的空间。
我把程序改写了一下,保留了主要算法,修改了错误和简化了控制逻辑。希望对 libaojian 有所帮助。
import java.util.*;
public class test
{
//Main method
public static void main(String[] args)
{
int row = Integer.parseInt(args[0]);
int col = Integer.parseInt(args[1]);
int count = row*col;
int mintemp = 1;
int rowtemp = row;
int coltemp = col;
Vector allvec = new Vector();
while (mintemp = count)
{
Vector vec = getvecs(mintemp, rowtemp, coltemp);
allvec.add(vec);
mintemp = mintemp + coltemp - 1 + rowtemp - 1 + coltemp - 1 + rowtemp - 1;
rowtemp = rowtemp - 2;
coltemp = coltemp - 2;
}
String[][] all = new String[row+1][col+1];
int minrow = 1;
int maxrow = row;
int mincol = 1;
int maxcol = col;
for (int i=0;iallvec.size();i++)
{
Vector vec = (Vector)allvec.elementAt(i);
Vector row1 = (Vector)vec.elementAt(0);
Vector row2 = (Vector)vec.elementAt(1);
Vector col1 = (Vector)vec.elementAt(2);
Vector col2 = (Vector)vec.elementAt(3);
for (int j=0, tt = 0;jrow1.size();j++, tt++)
all[minrow][mincol+tt] = (String)row1.elementAt(j);
for (int j=row2.size()-1, tt = 0;j=0;j--, tt++)
all[maxrow][mincol+tt] = (String)row2.elementAt(j);
for (int j = 0, tt = 1; j col1.size(); j++, tt++)
all[minrow+tt][maxcol] = (String)col1.elementAt(j);
for (i
您可能关注的文档
最近下载
- 【高考真题】2022年新高考物理真题试卷——湖南卷(含答案).pdf VIP
- 毕业设计论文-江苏工程职业技术学院.doc VIP
- 新人教版八年级物理下册第七章练习题.docx VIP
- 2022电网企业文化、电力与能源战略题库.pptx VIP
- 索尼A7RM3A使用说明书+入门帮助指南【完整电子版】.pdf VIP
- 【武汉市生鲜农产品的冷链物流发展现状、问题及对策探究16000字(论文)】 .pdf
- 2026版教师职称-山西-山西教师职称(基础知识、综合素质、高中信息技术)历年参考题库含答案解析5套.docx VIP
- 2020-2021学年江苏省淮安市淮阴中学八年级(上)期末物理试卷含解析.doc VIP
- 变压器油中溶解气体在线监测装置.docx VIP
- 2026年春新版二年级道德与法治下册教学计划(含教学进度表).pdf VIP
原创力文档

文档评论(0)