A. 鏁版嵁缁撴瀯涓庣畻娉曞ぇ瀛︽病瀛︽槑锏界殑𨱒
鏁版嵁缁撴瀯澶у︾敓镐庝箞瀛︽暟鎹缁撴瀯?浜斿ぇ鑴夌粶锲
鏁版嵁缁撴瀯
鏁版嵁缁撴瀯鏄璁$畻链哄瓨鍌ㄣ佺粍缁囨暟鎹镄勬柟寮忋傛暟鎹缁撴瀯鏄鎸囩浉浜掍箣闂村瓨鍦ㄤ竴绉嶆垨澶氱岖壒瀹氩叧绯荤殑鏁版嵁鍏幂礌镄勯泦钖堛傞氩父𨱍呭喌涓嬶纴绮惧绩阃夋嫨镄勬暟鎹缁撴瀯鍙浠ュ甫𨱒ユ洿楂樼殑杩愯屾垨钥呭瓨鍌ㄦ晥鐜囥
鐩稿叧链璇
鍦ㄦ暟鎹缁撴瀯涓庣畻娉曚腑锛屾暟鎹銆佹暟鎹瀵硅薄銆佹暟鎹鍏幂礌銆佹暟鎹椤规湁涓浜涘悓瀛︽闷涓嶆哕鍏朵腑镄勫叧绯汇傞氲繃鐢讳竴寮犲浘𨱒ユ崑涓鎹:
鏁版嵁涓夎佺礌
鏁版嵁缁撴瀯涓夎佺礌鍒嗕负:阃昏緫缁撴瀯銆佸瓨鍌ㄧ粨鏋勚佹暟鎹镄勮繍绠椼傞昏緫缁撴瀯鍒嗕负绾挎х粨鏋勫拰闱炵嚎镐х粨鏋;瀛桦偍缁撴瀯鍒嗕负椤哄簭瀛桦偍銆侀摼寮忓瓨鍌ㄣ佺储寮曞瓨鍌ㄣ佹暎鍒楀瓨鍌:鏁版嵁杩愮畻鍖呮嫭瀹氢箟鍜屽疄鐜般
鏁版嵁缁撴瀯瀛︿範姝ラ
鍗曢摼琛(甯﹀ご缁撶偣銆佷笉甯﹀ご缁撶偣)璁捐′笌瀹炵幇(澧炲垹鏀规煡)锛屽弻阈捐〃璁捐′笌瀹炵幇
镙堣捐′笌瀹炵幇(鏁扮粍鍜岄摼琛)锛岄槦鍒楄捐′笌瀹炵幇(鏁扮粍鍜岄摼琛)
浜屽张镙戞傚康瀛︿範锛屼簩鍙堟爲鍓嶅簭銆佷腑搴忋佸悗搴忛亶铡嗛掑綊銆侀潪阃掑綊瀹炵幇 锛屽眰搴忛亶铡
浜屽张鎺掑簭镙戣捐′笌瀹炵幇(鎻掑叆鍒犻櫎)
鍫(浼桦厛阒熷垪銆佸爢鎺掑簭)
AVL(骞宠)镙戣捐′笌瀹炵幇(锲涚嶈嚜镞嬫柟寮忕悊瑙e疄鐜)
浼稿𪾢镙戙佺孩榛戞爲铡熺悊姒傚康鐞呜В
B銆丅+铡熺悊姒傚康鐞呜В
鍝埚か镟兼爲铡熺悊姒傚康鐞呜В(璐蹇幂瓥鐣)
鍝埚笇(鏁e垪琛)铡熺悊姒傚康鐞呜В(鍑犵嶈В鍐冲搱甯屽啿绐佹柟寮)
骞舵煡闆/涓岖浉浜ら泦钖(浼桦寲鍜岃矾寰勫帇缂)
锲捐烘嫇镓戞帓搴
锲捐篸fs娣卞害浼桦厛阆嶅巻銆乥fs骞垮害浼桦厛阆嶅巻
链鐭璺寰凞iikstra绠楁硶銆丗loyd绠楁硶銆乻pfa绠楁硶
链灏忕敓鎴愭爲prim绠楁硶銆乲ruskal绠楁硶
鍏朵粬鏁版嵁缁撴瀯绾挎垫爲銆佸悗缂鏁扮粍绛夌瓑
缁忓吀绠楁硶瀛︿範姝ラ
阃掑綊绠楁硶(姹傞桩涔樸佹枑娉㈤偅濂戙佹眽璇哄旈梾棰)
浜屽垎镆ユ垒
鍒嗘不绠楁硶(蹇鎺掋佸綊骞舵帓搴忋佹眰链杩戠偣瀵圭瓑闂棰)
璐蹇幂畻娉(浣跨敤杈冨氾纴鍖洪棿阃夌偣闂棰桡纴鍖洪棿瑕嗙洊闂棰)
甯歌佸姩镐佽勫垝(LCS(链闀垮叕鍏卞瓙搴忓垪) LIS(链闀夸笂鍗囧瓙搴忓垪)鑳屽寘闂棰樼瓑绛
锲炴函绠楁硶(缁忓吀鍏镄囧悗闂棰樸佸叏鎺掑垪闂棰)
浣嶈繍绠楀父瑙侀梾棰(鍙傝冨墤鎸噊ffer鍜孡eetCode闂棰)
蹇阃熷箓绠楁硶(蹇阃熸眰骞备箻銆佺烦阒靛揩阃熷箓)
kmp绛夊瓧绗︿覆鍖归厤绠楁硶
涓鍒囧叾浠栨暟璁虹畻娉(娆у嚑閲屽缑銆佹嫇灞曟у嚑閲屽缑銆佷腑锲藉墿浣椤畾鐞嗙瓑绛)
B. 五大常用算法之一:贪心算法
所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,换句话说,当考虑做何种选择的时候,我们只考虑对当前问题最佳的选择而不考虑子问题的结果。这是贪心算法可行的第一个基本要素。贪心算法以迭代的方式作出相继的贪心选择,每作一次贪心选择就将所求问题简化为规模更小的子问题。 对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步所作的贪心选择最终导致问题的整体最优解。
当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。问题的最优子结构性质是该问题可用贪心算法求解的关键特征。
值得注意的是,贪心算法并不是完全不可以使用,贪心策略一旦经过证明成立后,它就是一种高效的算法。比如, 求最小生成树的Prim算法和Kruskal算法都是漂亮的贪心算法 。
贪心算法还是很常见的算法之一,这是由于它简单易行,构造贪心策略不是很困难。
可惜的是,它需要证明后才能真正运用到题目的算法中。
一般来说,贪心算法的证明围绕着:整个问题的最优解一定由在贪心策略中存在的子问题的最优解得来的。
对于例题中的3种贪心策略,都是无法成立(无法被证明)的,解释如下:
贪心策略:选取价值最大者。反例:
W=30
物品:A B C
重量:28 12 12
价值:30 20 20
根据策略,首先选取物品A,接下来就无法再选取了,可是,选取B、C则更好。
(2)贪心策略:选取重量最小。它的反例与第一种策略的反例差不多。
(3)贪心策略:选取单位重量价值最大的物品。反例:
W=30
物品:A B C
重量:28 20 10
价值:28 20 10
根据策略,三种物品单位重量价值一样,程序无法依据现有策略作出判断,如果选择A,则答案错误。但是果在条件中加一句当遇见单位价值相同的时候,优先装重量小的,这样的问题就可以解决.
所以需要说明的是,贪心算法可以与随机化算法一起使用,具体的例子就不再多举了。(因为这一类算法普及性不高,而且技术含量是非常高的,需要通过一些反例确定随机的对象是什么,随机程度如何,但也是不能保证完全正确,只能是极大的几率正确)。
C. run-time error 9 subscript out of range 请问该如何解决在线等,急急急!!!
意思是Runtime error是一个计算机错误以信息栏的状态显示包含特定的错误代码以及相应的解释。一般来说发生前用户会感到电脑明显的缓慢.,当信息栏被关闭后程序一般会自动关闭或者失去响应。有时会导致电脑重启。有多种情况会导致这些问题。
解决方法:
1、找到电脑页面上的开始菜单,然后单击。
2、接着看到所有程序,点运行。
3、输入界面的文字如图。
4、接着顺序找到【ShellExecuteHooks】文件夹HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks (这段文字是英文,系统自动空行的)
5、找到文件"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其它的删除。
D. 算法设计的5种基本方法
步骤/方式1
一、【分治法】
分治策略是:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。
步骤/方式2
二、【动态规划法】
最优化原理是动态规划的基础,任何一个问题,如果失去了这个最优化原理的支持,就不可能用动态规划方法计算。
使用动态规划求解问题,最重要的就是确定动态规划三要素:问题的阶段,每个阶段的状态以及从前一个阶段转化到后一个阶段之间的递推关系。
步骤/方式3
三、【贪心算法】所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。贪心算法的基本思路如下:
1. 建立数学模型来描述问题。
2.把求解的问题分成若干个子问题。
3.对每一子问题求解,得到子问题的局部最优解。
4.把子问题的解局部最优解合成原来解问题的一个解。
步骤/方式4
四、【回溯法】
回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。
用回溯法解题的一般步骤:
(1)针对所给问题,定义问题的解空间;
(2)确定易于搜索的解空间结构;
(3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。
步骤/方式5
五、【分支限界法】
基本思想 :分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。
常见的两种分支限界法:
(1)队列式(FIFO)分支限界法:按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。
(2)优先队列式分支限界法:按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。