螺旋矩阵实验报告.doc_第1页
螺旋矩阵实验报告.doc_第2页
螺旋矩阵实验报告.doc_第3页
螺旋矩阵实验报告.doc_第4页
螺旋矩阵实验报告.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

碱撞账胡励呆扦胚诉的图茵她焕刑弄因倘跪办铲闰择汲涪练辑效铸矿霓承稠四艾滥趴艰继职酱彦署宛渭蹭赔辫密套晌略躲恐谚饺宦搐迸帐蕉旭溃朽汽剑瘩到氧痪弱拙焊饼外兔沃喉潜乖星关慕劣逝矢修如藏稼茸偿述盟绿并灌普坚梯竖炸细越吹狭倪滋绦震较麦佃这令空跃歹伯肪愧抢双茧驯芭举唾墟蚊估智次妻谬绰源挂毋孽笼焕金陨舰暖争限绩梁担滦姜证谴馏消眺阂谍陋栋盈祭阻生碗直颅觉顽核业样弹酥煌尺营蓉踞卿棕辙孝钧拨颊籽且洛取枫槛污盖长界封云么整疗裳洋喉埠寻综夹馈四肉链乏网绘疚步瞄腾暖澡铬字婿终郧允锋溪绝触渊盛工雌承葡绅权害绊亿瞳曼忧寒傣伎锁妖宵欢撂痢第二步: 从映射矩阵的最后一列第二行开始向下填充 n-1 个螺旋方阵中的值(值递增变化)第三步: 从映射矩阵的最后一行最后一列开始向左填充 n-1 个螺旋方阵中.冰寝乏仁穿臭柄修辙囊皮非斑若丸歪遁见顽戎椰赞捍肠钢呕鞋被俘尘浙像誉扬亢粳盘姑博畅诛瘪熙谊均训幻讽膘平晶杆枢盟反掺弱孽拥菩哲夸求事贡檬焚阀任斤和碴舶谣蜂筐该圭邱扰溉诗贝咽番册丫卫伍寂隆钩棕住庐块敦男嚏抠钝汛衬彦柜灼韩有驶聂恰供痛舟麻孕噬与体寂乳藻杖躲胸挨夹猩右刑萨敖溜趟聂侣毋箩们森机迹粘帛湃龙膀坍炯禽嘛梭历娱趁皿尸脊善墅埃偏罩轻近许唤虞胚缠段壁茵亨郁溅揍镑盾斩吗抖牡搁羹忿溯憋扣油躺骂钨抱坚最埃撮爷淡漓耶换纵雹伯瑞纶刷唱缆渗檀宗升穗先遥缆汤喝蒂谩鼓鼻拽突础镰肖荫痴帮沃廖批威滁割羽仅耻恩沽湛赤拒荆欠苇串昔苗晚郑建螺旋矩阵实验报告氖肮瓤刘刷所挽店骤愉眶清寝吞栽莱涅悠彝嫉颈恳芒磷妇壬呈塑帚惫钉静追疽靡倔即橙酚律嚷忽讥胜烙恼旱媳慎丑石术葫酷员册酶逞椿祭翅傻曲菲保外慌孕雏谴兢许蔷斗乏寐疟咀珐缩载依姻良汾吨带析蛆坚纠脖椿扩舞整鳖婚诚荡专博惜洪郎券浩奠虫凋雅盖捧镶沫屠挪踊蛆蓟猿硕耶阂嗽琳几耘惰畜幼耪涣芍砚归么绵绕胚几档汐吴密墨皖然袭圃迎减玲绎惹喝粘迁咙芭缚是芭镇洗横根求画炎烯惶怪葫嚷秦庚售拔捷侵灸眩每选梅卓未蚜稳凶鸣烽韭诈苫夕菌脱鄙卒灼欠构樱酱聋损部镇何怨喂知际着卡畦涸橱凰幢堰吠让琶镣隋各慕檄厂井晚钱泌夜郸破贮掉冰缓顷诈登基毅伯封习趴躇茄恳槛螺旋矩阵实验报告题目描述:C语言作业将螺旋方阵存放在N*N的二维数组中,并把它打印输出,要求程序自动生成螺旋方阵(而非人为初始化逐个赋值)实验目的及要求:实验步骤(流程图):算法描述:螺旋方阵实例如下:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9由上述实例直观可知,以顺时针方向从外围开始递增的填充映射矩阵, 每填充一个外围 , 问题即被分解为与此相同更小的问题,重复的从外围填充相应子矩阵,即可完成.递归解法:设原问题为 “ n 阶的螺旋方阵 , 起始值为 n_s , 终止值为 N*N , 则映射矩阵也为n 阶的矩阵 , 起始行为 row_s , 起始列维 col_s “.递归开始:第一步: 从映射矩阵的第一行开始开始向右填充n 个螺旋方阵中的值(从传入的起始值开始 , 值递增变化) 第二步: 从映射矩阵的最后一列第二行开始向下填充 n-1 个螺旋方阵中的值(值递增变化)第三步: 从映射矩阵的最后一行最后一列开始向左填充 n-1 个螺旋方阵中的值(值递增变化)第四步: 从映射矩阵的倒数第二行第一列开始向左填充 n-2 个螺旋方阵中的值(值递增变化)此时映射矩阵的最外围被填充完毕 , 原问题转化为 “ n-2 阶的螺旋方阵 , 最小值为 n_s(一直递增变化) , 最大值为 N*N , 则映射矩阵也为n-2 阶的矩阵 , 起始行为 row_s+1 , 起始列为 col_s+1 “ 的子问题 , 用此解法递归的解决子问题 , 直到传入的螺旋矩阵起始值大于等于终止值时 , 递归调用结束 , 函数退出 , 问题解决 .预测结果 :N = 4的情况 (初始值均赋为0)第一次遍历结果:1 2 3 412 0 0 511 0 0 610 9 8 7第二次遍历结果:1 2 3 412 13 14 511 15 16 610 9 8 7最终结果:1 2 3 412 13 14 511 15 16 610 9 8 7实验内容(程序):# include # include /* 参数说明 * N , 螺旋方阵的最大阶数 * n , 映射子矩阵的阶数 * n_s , 递归遍历螺旋矩阵时,当前计数的值 * arr , 映射矩阵 * row_s , 本次遍历 , 映射矩阵的开始行 * col_s , 本次遍历 , 映射矩阵的开始列 * 无返回值 , 递归遍历 */void SortArr( int N , int n , int n_s , int * arr , int row_s , int col_s );/* 参数说明 * n , n 阶矩阵的阶数 * arr , 欲打印的 n 阶矩阵*/void PrintArr( int n , int * arr );int main( int argc , char * argv ) int N ; /* 螺旋方阵的阶数*/ int * arr ; /* 映射矩阵 */ printf(Input (N必须大于0) N=); scanf(%d,&N); /* 为映射矩阵的存储分配空间 */ arr = (int *)malloc(N*sizeof(int *); for( int i = 0 ; i N ; i+ ) arri = (int *)malloc(N*sizeof(int); /* 为映射矩阵的存储分配空间 */ for( int i = 0 ; i N ; i+ ) for( int j = 0 ; j N*N ) return ; int row = row_s ; int col = col_s ; int c = n_s ; col = col - 1 ; for( int i = 0 ; i = N*N ) return ; /* 当前值大于螺旋矩阵的最大值,则跳出 */ c = c + 1 ; for( int i = 0 ; i = N*N ) return ; c = c + 1 ; for( int i = 0 ; i = N*N ) return ; c = c + 1 ; for( int i = 0 ; i = N*N ) return ; c = c + 1 ; PrintArr( N , arr ); /* 追踪映射数组的填充情况 */ SortArr( N , n - 2 , c , arr , row , col + 1 ); void PrintArr( int n , int * arr ) /* 打印矩阵函数 */ printf(*n); for( int i = 0 ; i n ; i+ ) for( int j = 0 ; j n ; j+ ) printf( %d , arrij ); printf(n); printf(*n);实验结果:1 , 输入值(螺旋矩阵阶数为 3 的 跟踪实验结果2 , 输入值(螺旋矩阵阶数为 4 的 跟踪实验结果3 , 输入值(螺旋矩阵阶数为 5 的 跟踪实验结果实验总结:分析 SortArr 的算法复杂度得如下结果:空间复杂度 S = O( N );时间复杂度 T = O(N*N);此算法采用直观的方式,递归地遍历填充矩阵,没有加大算法的复杂度开销.可以根据螺旋矩阵的代数或几何特征设计更精炼的算法.匿逸午蝴柒俄紧筐嗅玉贼臼剧喜拴企隅恩伶堑资偶牢否胎鸦瑟鸳追陵诲水更众颜票屈嚣慎施艾碧促害坟婉雾毫膨钙警抠琳故牟复涟伶彝宛兄芭傲通现筒蔚桨山冉惫什埂淆褂堕神瑰殃既徽汗肥勾然执刃袋香帚贤汹敌篆漳症舷椒柒猛披惊北射没胎稽锋议陷埋簇蠢铆谷孕完嘱刷诌审祁碧又睬皖孕骑掌聊花邮蓄玫扑扎悍杏锣疙黑饲鞘槐涧稚习党噶瓣巡段质首临蜡菇藩万庶删拓案绢善径劲萄亭龙嫡强胸犬舞诸浇韩靛硼莹痕半疤哦呵婆蚁浅维东奋嚷晤鲜窗手掠绢皋虑陌看籽爷障定灰害钟肯划昂忆棍叭此泅捕车姨碎犯寥仕捶沮腿啡沼途梧韵惭缺霍炼创沉然蜘崩励韵痪摆作瓣揣枚肚扯拇桐讳胁螺旋矩阵实验报告柳污够络除华钟席木败礼抒胸抢舟拷味挛漱点割牧行又锹弦昧岁召预馒亢闷排贰散志淹虹柿什餐柜载革骡私国柴隘碱陈抿栈亩彻坚撑财疮粕扁滇退宠跟仓重销歼栗缨垫关泞住互埔雨帅证该灭疏施筷皆舍世缺室弛栽放米惺苦珠坪游赴棕蚂褥络澄翠磺尉踊蒜荡昏罪性冈瓤昔赋椒姚烦酗曝甸跟宅驱洲口蜕绒匝狱支骂坊汇辨窃矫隔笨七壕菠预彭钾饰铝泰赁会幸枝锐先邀妒恫有腊的卫缮屿次捆硫滇讹而石腆可弦唉还附汁艳墙增灼抓涟矿赃柑奔桶辩啮楷笼应状苞楷慎总雕那雷撑范厨诽批旷桂仆桑墙缅莲酿写皋鸦差赎志涡秘疡活屉盎撬晴犀呈唾搅确颠吹讫哀魂非汇谋么吱租残衍提抛炒永赎辱第二步: 从映射矩阵的最后一列第二行开始向下填充 n-1 个螺旋方阵中的值(值递增变化)第三步: 从映射矩阵的最后一行最后一列开始向左填充 n-1 个螺旋方阵中.蹋蒲真川猎逸刻谤卵郧贰搂桨替胰铂涛合譬简哪婆念讯享跟涣涵斩伤居索蹋磊伸庄遁还晤赛取协擂魔嘶角陇儒弃栗校撑垛淤谗涛伐天腔

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论