演算法設計複習之概念和問答

2021-10-24 07:20:33 字數 1466 閱讀 9534

演算法是指解決問題的準確方法或步驟。

演算法的時間複雜度,是用來衡量演算法的執行時間,記做o(f(n)),演算法執行的時間的增長速度可以用f(n)表示。

貪心法就是在每一步選擇中都做最好的選擇,從而希望結果是最好的演算法。

將乙個難以解決的大問題,分割成多個較小的相同問題,逐個擊破。

搜尋演算法是指利用計算機的高效能來有目的地窮舉乙個問題的部分或全部解決方法,從而求出問題的解。

遞迴是指在乙個方法函式中直接或者間接的呼叫自身。

指對乙個演算法所需要的計算時間和儲存空間的分析。

1.哈夫曼樹

哈夫曼樹指帶權路徑最短的二叉樹,也叫做最優二叉樹。

帶權路徑=根節點到該節點的路徑*該節點的權值

例子:節點a

bcde

權值285

107哈夫曼樹構建過程:

1.先取出最小的兩個節點,小的在左邊,大的在右邊

此時ac:7

2.繼續以上步驟,去掉a和c,加入ac

選擇ac和e組合

3.重複以上步驟

這次選擇b、d

4.此時只剩bd和ace兩個,組合他們,這就是例子的哈夫曼樹

路徑長度就是該節點的層數-1,如e結點的路徑長度為3-1=2

哈夫曼樹的總帶權路徑長度用wpl表示,該哈夫曼樹的wpl=2*7+3*2+3*5+2*8+2*10=71

2.哈夫曼編碼

在哈夫曼樹中。左邊代表0,右邊代表1,以上面的例子為例

此時a結點的哈弗曼編碼就是000,b的是10,c的是001,d的是11,e的是01

1.kruskal演算法

演算法思想:

根據邊的權值從小到大排序,然後從最小的邊開始一一檢查,如果不會構成迴路則新增進結果集。

2.prim演算法

演算法思想:

選擇任意乙個頂點加入到集合a,其他頂點在集合b

選擇乙個頂點在a乙個頂點在b並且權值最小的邊加入到最小生成樹

然後將該邊的在b的頂點加入到集合a

重複以上步驟,直到全部加入到集合a

資料結構複習之 資料結構和演算法概念

資料結構就像是乙個催化劑,如果沒有原料是無用的,單是有了演算法就能幫演算法更快的實現任務 資料結構 是指相互之間存在一種或多種特定關係的資料元素 的集合,簡單地說是資料之間的各種關係的集合。程式設計 資料結構 演算法 解釋 如果要寫乙個程式,需要選擇乙個良好的資料結構,加上良好的解決問題的演算法 資...

高速PCB設計入門概念問答集

1 什麼是電磁干擾 emi 和電磁相容性 emc electromagnetic interference 有傳導干擾和輻射干擾兩種。傳導干擾是指通過導電介質把乙個電網路上的訊號耦合 干擾 到另乙個電網路。輻射干擾是指干擾源通過空間把其訊號耦合 干擾 到另乙個電網路。在高速pcb及系統設計中,高頻訊...

演算法設計題怎麼複習

演算法設計題如何複習?明確了考察重點後,我們複習的策略就更具針對性,分為夯實基礎 強化演算法編寫 模板化應試三個階段來給出複習建議。翻看一些王道考研資料結構複習指南,會有以下這些知識點 緒論2.線性表 3.棧和佇列 4.樹和二叉樹 5.圖 6.查詢和排序 7.排序 其中,在演算法設計題中,優先順序排...