1. 程式人生 > >2018.1.5

2018.1.5

counter gpo 多項式 nbsp 算法導論 部分 坐標系 減少 表示

算法課的哥們講得還是很不錯,作為純數學課能講成這樣我是沒見識過的,相比之下北大那哥們就有點不給力了

今天是繼續深入divide and conquer:

1.先是講求一個list中沒有排好的數據的對數,實際上在sort的過程中加一個counter就解決了,教授用的merge sort,得到結果用的復雜度自然和merge sort也是一樣的,都是O(n log n)

2. strassen詭譎的矩陣乘法算法,將naive解法的每層8次遞歸減少為7次遞歸,至於strassen是怎麽得到這麽一大坨多項式的,教授明確表示布吉島。算法導論上也說關於這個算法的解釋可能是全書最薄弱的部分了,不過我覺得這是給自己臉上貼金吧,算法導論這書寫的難道還不夠莫名其妙麽。

3.講二維坐標系下求距離最小的兩點,仍然是分治,但是merge的部分用了一種非常巧妙的解法,簡單說就是利用了每一層遞歸返回的最小距離,然後用這個最小距離界定merge時候的點範圍,可以省很多算力。這個算法真的很巧妙。最後得到是一個O(n log n)的算法。

4.最後the master method,算divide and conquer算法復雜度主要就用它,這一部分我覺得這哥們也比算法導論上講得好,聽著蠻舒服的。

2018.1.5