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)優先隊列式分支限界法:按照優先隊列中規定的優先順序選取優先順序最高的節點成為當前擴展節點。