《常用的数据结构和算法 (2)》由会员分享,可在线阅读,更多相关《常用的数据结构和算法 (2)(15页珍藏版)》请在金锄头文库上搜索。
1、常用的数据结构和算法 (2)深入JAVA编程专业教程第017课算法及数据结构日概述:丸穷举算法丸递归算法,重点穷举算法“递归算法,难点:第017课算法及数据结构1穷举会次查询所有可能情况,以获得目标值况|用计算机计算速度伐的特点,在备选项目不是特别多的情况下可以使用)凌询过程要无遗漪,不重复)动举并不是说不要任何地优化,在有明显得条件可以优化的前提下还是应该尽量优化程序第017课算法及数据结构1穷举例:利用穷举法在1-100的自然数中找出所有的素数publicclassQiongjuprivateintresultpublicQiongiufresult=newintl40publicvoid
2、dealtintpoint=0;resultpoiforinti=3;i100;i=2(ifisPrimeNumber()resultfpoint+=第017课算法及数ji构1穷举publicbooleanisPrimeNumberfintn)fforlinti=2isMath.s霓枕(n)+1iH+)议ngfi=)returnfalse;returntrue;)publicstaticvoidmain(String|a署从TODOAuto-generatedmethodstubQiongjuqj=newQiongiu(iqjdeal(forlinti0iiqjresultlengthi+)f
3、)Systemoutprintintqjresult);第017课算法及数据结构1穷举主要思想:)寺所有可能为素数的数进行检验渊先要保证不遗漪,保证每一个可能的数都要检验到)命能够简化的情况下要尽量的简化第017课算法及数据结构2递归在程序设计中,函数直接或者问接调用其自身的方法叫做递归调用简称递归.其设计方法被应用到很多特殊问题的解决上一L&48一8C|1第017课算法及数据结构2递归递归要点:?毒次递归调用都要使问题简单化当递归达到某种程度后能够的到一个已知解以结束递归i第017课算法及数据结构2递归例:据说毕巡哥拉斯理论家叉称一群在毕达冒拉斯(以毕达哥扬斯理论闻名)领导下工作的古希腐的数学家,发现了在数字序列,3,6,10,15,21,(省略导说明这个序列无限地继续下与)中有一种奇特的联系。你能知道这个序列的下一个数字是什么同?第017课算法及数据结构2递归分析:这个数列师的第n项是由第h一1项加M得到的。由此,第二是由第一顶(U加上2,得3。第三项是由第二项(3)加上3得到6*此类推。这个序列户的数字被称为三角数字,因为它们可以被形像化地表示成对象的一个三角形排列.