演算法學習初步

2021-07-29 14:06:57 字數 850 閱讀 4209

1.窮舉。

void 

print_******** ( int 

n ) 

cout 

<

2.分割圖形,分治法解決

print_******** ( int 

n ) }

3. 提取重複**塊為函式

void 

print_line ( int 

i ,  int 

n ) 

void 

print_******** ( int 

n ) 

5. 比較差異,提取引數

void 

print_sequence 

( int 

n ,  

char c )

// 一行:i 是行數、n 是三角形邊長

void 

print_line ( int 

i ,  int 

n ) 

void 

print_******** ( int 

n ) 

6. 調整引數,便於閱讀

print_sequence ( int 

n ,  char 

c ) 

// 一行:s 是空白長度、t 是符號長度(兩者都是填充長度)

void 

print_line ( int 

s ,  int 

t ) 

void 

print_******** ( int 

n ) 

經過這6步的改進,現在的演算法重用性很高,經過簡單的修改後就可以應對各種列印圖形的題目了!

演算法學習 Union Find演算法

union find演算法有它的實際用途。多用於動態連通的應用場景。union find演算法是 給出兩個節點,判斷它們是否連通,如果連通,是不需要給出具體的路徑的 舉兩個例子作為主要表現 1 在網路連線中,當發現沒有連線的兩個節點,可以把他們連線起來,一旦節點都連線起來,又能把多餘的線拆除,這時候...

演算法學習 KM演算法

km演算法 用於求二分圖的最佳完美匹配 即權值最大的完美匹配 如果你也是個剛來學習km演算法的人 大概的用途肯定還是知道的吧 還是直接說重點吧 首先 理解km演算法前 必須有以下3個概念 1.可行頂標 對於乙個賦值二分圖g x,y,e,w x,y 代表二分圖的兩邊頂點標號 e代表邊 w代表邊的權值 ...

演算法 演算法學習01

貪婪 可以理解為最簡單基礎的求解方式,特點是 短視性 從這個特點入手很容易理解每一步取其最優的原理。雖然最終結果不一定是最好的,但是一定是較好的而且是最簡便的。因此在不過分追求最優結果或者對速度的要求高於結果的情況下,貪婪是不錯的選擇。分治可以理解為大事化小小事好搞,與貪婪的每一步的 串聯 不同,分...