10 2013 档案

摘要:1.关于基本解题思路 这次的作业是要求生成一个单词矩阵,并且其中包含所给的单词,由自己的一些思路和上次课老师所讲的内容,解题的思路大致如下: 1.将所有单词存入字符串数组word[i]中,二维整形数组pos[i][3]用来记录单词的位置信息。pos[i][0]记录单词word[i]的首字母在矩阵中的横坐标,pos[i][1]记录单词word[i]的首字母在矩阵中的纵坐标,pos[i][2]记录单词word[i]的方向(共8个方向)。 2.先给第一个单词随机分配一个位置和方向,记录在pos[0]中,之后扫描第二个单词的每一个字母,如果有和第一个单词的字母相同的,就根据相同的字母给第二个单词... 阅读全文
posted @ 2013-10-28 01:44 余明海 阅读(140) 评论(1) 推荐(0) 编辑
摘要:1.关于程序 这次的程序算法基本上已经固定,只是要将算法运行的结果展现出来。在homework-01和homework-02中我使用c++语音编写,这次使用c#语言编写,并处理了命令行参数的问题。 算法和homework-02一样,只是获取了二维数组找到最大子数组和时子数组的边界信息,从而可以对子数组进行绘色。 以下是运行截图: WindowsFormsApplication1.exe 1.txt命令: WindowsFormsApplication1.exe /h 2.txt命令: WindowsFormsApplication1.exe /v 3.txt命令: P... 阅读全文
posted @ 2013-10-25 23:24 余明海 阅读(153) 评论(0) 推荐(0) 编辑
摘要:1.程序的命令行参数及文件问题 第二次作业中要求程序支持命令行参数及文件,因此我在程序中加入了对这一部分功能的支持,并且加入一些错误处理。之后便是使用第一次作业的算法来求出最大一维子数组和即可。 若程序无参数直接运行: 若输入的文件不存在: 输入了正确的文件名: 2.二维最大子数组问题 关于二维最大子数组问题,一开始只能想到朴素的暴力搜索,但是这样的算法时间复杂度过高,因此决定找一些优化的算法。 先使用一个三维数组b[i][j][k]来记录二维数组a[i][j]第k列第i行到第j行的和,这样便可以将二维数组问题简化为求一位数组b[i][j][0],b[i][j][1],... 阅读全文
posted @ 2013-10-25 23:03 余明海 阅读(150) 评论(0) 推荐(0) 编辑