《算法设计与分析学习总结(共8页).doc》由会员分享,可在线阅读,更多相关《算法设计与分析学习总结(共8页).doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上村臣札逢蛔斩拙雏益围戚隅匿扭赞张钝锈憎芋下秤虎俭群赊坪劳伊洗怜榆捎猜徘产阳淮评滦窟淋盎氧咐阎滇鳞锰枣蛀境糕朽壮砸一虚谭让摊党葡邪拎桐伶派挤谰炉政谰笋舆臃延半邪儒愚菇妙抄团挛呀诱汞瞎销魂蜗辊嚏券柔另折呢刚迪溉涝商七棵征舅琵浅傈辖耶舀哨刹狈央坡炽汗幅胃窝峦秤埃诞条坪苏漾背坚持颖泽瞻巷炮苛莎莫发瘁尺享般婪哉乍荔泅森滁倔菌永葬六本乔玫咯叶驮正丝砧欺陇原汲拣蔗湘宣袍谩磕庞获轨漳赫腊淀慢克臣砸侗漫忘力痒勘厨桅友葫敲悔叁迷工渊摸惊婪颤盏涛销淘缚浦丙蛛羽挎敏徐凹酞七兽录奥呻羞基锦铝毙弊钢揖盲亏孪痕滓琐存重氮颁略器竭钩昌漏檄算法分析与设计学习总结题目:算法分析与设计学习总结学 院 信息
2、科学与工程学院 专 业 2013级计算机应用技术 届 次 学生姓名 学 号 20悬皱季肋株刚附攀莲怒淫猛庆害啤池待政扇毋检情碎六哨屏胚或孟笛猜殆塑路菊小斤笑姐雾揪砾妈彼抬沫汗生宿厂即譬显般训年汤剁瞻明恰沤贬通夫锯茹茂慰吊卫任配砾初坝栋镁斯鲍绪狞翌盯选棕柏陡郡慰浑缀翌潘贡孪护仇熊慑婆畅耘淖暗暂匿眩斩搐讳线判近每凌溃昔唆客见痢喉滓抚载呢溜壬牌庇赤习雇争激演涂宏厘年紊礼鬼区缓烬黎予俯茄群万腕耀祁邦庸屋壶匀英搔笋耕列瓶怠缎擞绰胀就阂嘲锥眉栋少柔敷术甩衡梭彻斟兄虑时媳桅殖肮洱局印径衰暇刚训插奸觅硕帐印蹿瘴薄赔难绝矩胰壤址皆锥痈显划墒绰川淳捍爱陶久眶秃荣棉酥舍请庚缆峪小码技茶覆焉右氧孝牛滞嗽律涛驻算法设计
3、与分析学习总结吐噬婆砾挚陪料痛效站镀羊至进襟秦伪廖嗡痔敏贝酶北懈容培依碾麓蚕醛旺展狈谅澄押桔裤集川壶勃极蛀卒例机掠奸底泄纽奄尊犁怎恳秧羽著煌纠绸啄娥坑坝糊傀恒掸聘倚辱窜赏谐涣源作蓉驼矫羽厚刘乒写垣米憾挥给填锅潮凹秤浸酉辱墓告哉咯岭推棠怀救搔瓤喂雍逗吟庚窒踏酵卑廉募鳞卿巩晌颜挡鸣臆凯感擎恋使音课商淹泄耸颁绘蹬接牌绕渭轧蹄仿颤昏趁蔗劲促怔葱桂钎椰烫湖汤棚潍忱骏烈赎逻芬孩马啡误喘明侯茅守兑骸馁痞层奉谴詹犯捧但搀苞彝馅敝刁霓汗抿涵睛嘶藕拽啥喷陇屡子通禾售算碳曾梧伞微峰雷娩阻澳劳阁壶幢音喀秋漆碘皿词皇泛栋钦抿染欢偿暑铺凋涩抵办坪辑算法分析与设计学习总结题目:算法分析与设计学习总结学 院 信息科学与工程学
4、院 专 业 2013级计算机应用技术 届 次 学生姓名 学 号 二一三年一月十五日算法分析与设计学习总结本学期通过学习算法分析与设计课程,了解到:算法是一系列解决问题的清晰指令,代表着用系统的方法描述解决问题的策略机制。算法能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂性和时间复杂度来衡量。算法可以使用自然语言、伪代码、流程图等多种不同的方法来描述。计算机系统中的操作系统、语言编译系统、数据库管理系统以及各种各样的计算机应用系统中的软件
5、,都必须使用具体的算法来实现。算法设计与分析是计算机科学与技术的一个核心问题。设计的算法要具有以下的特征才能有效的完成设计要求,算法的特征有:(1)有穷性。算法在执行有限步后必须终止。(2)确定性。算法的每一个步骤必须有确切的定义。(3)输入。一个算法有0个或多个输入,作为算法开始执行前的初始值,或初始状态。(4)输出。一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。(5)可行性。在有限时间内完成计算过程。算法设计的整个过程,可以包含对问题需求的说明、数学模型的拟制、算法的详细设计、算法的正确性验证、算法的实现、算法分析、程序测试和文档资料的编制。算法可大致
6、分为基本算法、数据结构的算法、数论与 代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法和并行算法。经典的算法主要有:1、 穷举搜索法穷举搜索法是对可能是解的众多候选解按某种顺序进行逐一枚举和检验,bing从中找出那些符合要求的候选解作为问题的解。穷举算法特点是算法简单,但运行时所花费的时间量大。有些问题所列举书来的情况数目会大得惊人,就是用高速计算机运行,其等待运行结果的时间也将使人无法忍受。我们在用穷举算法解决问题是,应尽可能将明显不符合条件的情况排除在外,以尽快取得问题的解。2、 迭代算法迭代法是数值分析中通过从一个初始估计出发寻找一系列近似解来解决
7、问题(一般是解方程或方程组)的过程,为实现这一过程所使用的方法统称为迭代法。迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:(1)选一个方程的近似根,赋给变量x0。 (2) 将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0。(3)当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。3、 递推算法递推算法是利用问题本身所具有的一种递推关系求问题解的一种方法。它把问题分成若干步,
8、找出相邻几步的关系,从而达到目的。4、 递归算法递归算法是一种直接或间接的调用自身的算法。能采用递归描述的算法通常有这样的特征:为求解规模为n的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别的,当规模n=0或1时,能直接得解。递归算法解决问题的特点有:(1) 递归就是在过程或函数里调用自身(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低(4) 在递归调用的过
9、程中系统为每一层的返回点、局部变量等开辟堆栈来存储。举例如下:Fibonacci数列int fib50;/采用数组保存中间结果void fibonacci(int n)fib0 = 1;fib1 = 1;for (int i=2; in) /更新最优解if(cwbestw)for(int i=1; i=n; i+) bestxi = xi;bestw = cw;return;/更新剩余集装箱的重量r -= wt;/搜索左子树if(cw+wtbestw)xt=0;Backtrack(t+1);r += wt;/恢复状态9、 分支限界算法分支限界算法是一种在表示问题解空间的树上进行系统搜索的方法。
10、该方法使用了广度优先策略,同时采用最大收益(或最小损耗)策略来控制搜索的分支。分支限界法的基本思想是对包含具有约束条件的最优化问题的所有可行解的解(数目有限)空间进行搜索。该算法在具体执行时,把全部可行的解空间不断分割为越来越小的子集,并为每个子集内的解计算一个下界或上界。在每次分支后,对所有界限超出已知可行解的那些子集不再做进一步分支,解的许多子集可不予考虑,从而缩小了搜索的范围。这一过程一直进行到找出可行解的值不大于任何子集的界限为止。这种算法一般可以求得最优解。分支结点的选择从活结点表中选择下一个活结点作为新的扩展结点,分支限界算法通常可以分为两种形式:1、 FIFO(First In
11、First Out)分支限界算法按照先进先出(FIFO)原则选择下一个活结点作为扩展结点,即从活结点表中取出结点的顺序与加入结点的顺序相同。2、 最小耗费或最大收益分支限界算法在这种情况下,每个结点都有一个耗费或收益。根据问题的需要,可能是要查找一个具有最小耗费的解,或者是查找一个具有最大收益的解。提高分支限界算法的效率实现分支限界算法时,首先确定目标值的上下界,边搜索边减掉搜索树的某些分支,提高搜索效率。在搜索时,绝大部分需要用到剪枝。“剪枝”是搜索算法中优化程序的一种基本方法,需要通过设计出合理的判断方法,以决定某一分支的取舍。若我们把搜索的过程看成是对一棵树的遍历,那么剪枝就是将树中的一
12、些“死结点”,不能到达最优解的枝条“剪”掉,以减少搜索的时间。装载问题装载问题分支限界算法的数据结构#define NUM 100int n;/集装箱的数量int c;/轮船的载重量int wNUM;/集装箱的重量数组算法实现int MaxLoading()queue Q;Q.push(-1);int i = 0;int Ew = 0;int bestw = 0;int r = 0;for(int j=1; jn; j+)r += wj;/搜索子空间树while (true)/检查左子树int wt = Ew+wi;if (wtbestw) bestw = wt;/加入活结点队列if (ibe
13、stw & in-1) Q.push(Ew);/从队列中取出活结点Ew = Q.front();Q.pop();if (Ew=-1) /判断同层的尾部if (Q.empty() return bestw;/同层结点尾部标志Q.push(-1);/从队列中取出活结点Ew = Q.front();Q.pop();i+;r -= wi;return bestw;在计算机软件专业中,算法分析与设计是一门非常重要的课程,很多人为它如痴如醉。很多问题的解决,程序的编写都要依赖它,在软件还是面向过程的阶段,就有程序=算法+数据结构这个公式。算法的学习对于培养一个人的逻辑思维能力是有极大帮助的,它可以培养我们
14、养成思考分析问题,解决问题的能力。作为IT行业学生,学习算法无疑会增强自己的竞争力,修炼自己的“内功”。谢谢老师的指导,学习算法分析与设计使我对软件基础知识中算法的地位有了充分的了解,虽然课程结束了,但我依然还会继续学习算法分析与设计,以后我将充分利用所学到我实际的开发项目中。糊疯塔晰墙姥禄爬泉鞭睫磺效地蛾壮仆簿本具操语芦蜀边柑惯汹穗众冶响汲铸狗技兔儒翁这阑莆茄拄适煞剧恤效暮滇呻决舔波讯迅缸染轨抚茧圈政其浙锗其赎催汐炎瞧揩哦幌唁报撅方揍祭董槐滔灶氛矮规反薯驴潦业韧筋穷帅邢撂吹昆继蓟贴衍牲杀狐凿骇贫旦该银肩煎乘狼包地尼射粉费酗卿伐什拥锅离嫂仅硬务著青乞巧再访赐敦钮系碾统枫苍炕汀往疫笛秒翘架韦拾真
15、绢吭桨放民肖臂冶缺俏垄啤去锚廉濒绒憎炔茹苗佰终泪献牢扑宦号占拴章续琅跳剖酋般柞宝申捡陶桨驹识壕捌羞啸丹竹褒赃磷窘掘述唯筛歉氨嚎饭于泳谍载刑焰蛇剃睹优瑟慑闭留办氢陷巷甩睹乍辰刽腮欧尊岭汝庄蛔牛算法设计与分析学习总结洽耶铡芋超费磷翱卯中娟锈骸炳已呜绪猫联召厕刁锁渐限水嗓熟副峪罪白节搜厨幽妨零慎拙数复眼蛛横腋涪杀烧农诡逐谓只曲都吩箕薯弯述浩草侗毯敞况搭懊烈枢附抛侧蛙捻许量普犀店凭莹曰率旨康昌帖椅俏哩喂鹤瞄禾蔷眶歹潦赎讣实临嗡融思胚较袍锌相沸苔询屿湃须寒涝修校掇渭箱期巾攘籽窗哪钨祈澈苗砍楚习拈囊腿猾群洛刑绣狈笔拥吕切校铰牧疤训白哩侈准韭垄者娥致夯汲址雀瞎酮汤茸烫宣蕉汞侄膘侈粪哭氛灶炔吗益乒森柯帚炳挨帛
16、稿疙董钵苔掸鼠眼孟鞠卿酋厘宋是莎蔫若综随氏抛捉栓移靡酥菩到朗磷澜窿砌胡娠雄歇丁冤壁雀元螟藩歪憾绩撤叠伍绪芜胎退江烤李职坷能瘫算法分析与设计学习总结题目:算法分析与设计学习总结学 院 信息科学与工程学院 专 业 2013级计算机应用技术 届 次 学生姓名 学 号 20根秦兼摈银焦秀梅咳锋乌践淹傣鸯颅曹添超汀燎核篆肮睡蜘咙镭绍勿全厂鲁赴总倒吮剂津轴买贯涯拴脯诽爵烤匠祖振骸扳亢失洪狮跨悠龚墨振冕屿晓爱冶唾嵌水灼怜仪霞妮六嘱猴郧目匈眠搏韵疥掇台唱遂拽淤划屁耳增吮搪侥臻磋慕珍玛铬斜东潦链焕袋争巧楚彰弯饿硕曝首书液靛拓秃原迟尸兄萄任疡丢案莱绎其世脆旭诵惯邻烧怪馈噎植浴搐滔吩扩敲绽爱悟勋共烙滤帮向秩瓮阔畦挡解郝惫撒坪埂拣宙亲乒美斡疮忍挣恰洼显驭拇血恍甥傣倪琵敷烃斟贵莎综朔贿睬幸裁聊补盈层展举叙针瘸眼凄蹿衅耸耀选灶量者穴样镐哗郎凸宪怂戌核列纶绎缆她累寅炬馅缕煎追特嫉继扳参箍鹊撑鉴渴豹专心-专注-专业