日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法导论第22章部分答案

發布時間:2023/12/10 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法导论第22章部分答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考https://blog.csdn.net/github_35807147/article/details/79110801

22.1-1 給定有向圖的鄰接鏈表,需要多長時間才能計算出每個結點的出度(發出的邊的條數)?給定時間才能計算出每個節點的入度(進入的邊的條數)?
一個圖G(V,E),(V為點數,E為邊數),鄰接鏈表空間為O(V+E)。
而鄰接表要遍歷,因此計算每個節點的出度和入度的總時間都為O(V+E)

22.1-2 給定一棵有7個節點的完全二叉樹的鄰接鏈表,請給出等價的鄰接矩陣表示。這里假設結點的編號為從1~7。
見書22章的圖22-1 的a,b,c吧

22.1-3有向圖G=(V,E)的轉置是圖GT=(V,ET)G^T=(V,E^T)GT=(V,ET), 這里ETE^TET={ (v,u)∈VV; (u,v)∈ E }.因此,圖GTG^TGT就是將有向圖G中所有邊的方向反過來而形成的圖。對于鄰接鏈表和鄰接矩陣兩種表示,請給出從圖G中計算出GTG^TGT的有效算法,并分析算法的運行時間。*
即對于有向圖而言,要把所有的邊反向,
如果是鄰接矩陣,那么直接某格和某格交換,j即矩陣轉置,時間是O(V^2)/2;
如果是鄰接鏈表,那么要先開辟O(V+E)個空間,一 一遍歷,重新建表格。

22.1-4 給定多圖G= (V,E) 的鄰接鏈表(多圖是允許重復邊和自循環邊的圖),請給出一個時間為O(V+E)的算法,用來計算該圖的“等價”無向圖 G’=(V,E’)的鄰接鏈表表示。這里E’是將E中的冗余邊和自循環邊刪除余下的邊,刪除冗余邊指的是將兩個結點之間的多條邊替換為一條邊。
標記法,第一次出現就不刪除,這樣就是o(V+E)了。

22.1-5 有向圖G=(V,E)的平方圖是圖G2=(V,E2)G^2=(V,E^2)G2=(V,E2),這里,邊(u,v)∈E2E^2E2當且僅當圖G包含一條最多由兩條邊構成的從u到v的路徑。請給出一個有效算法來計算圖G的平方圖G2G^2G2,這里圖G既可以以鄰接鏈表來表示,也可以用鄰接矩陣來表示,請分析算法的運行時間。
解:
參考:https://blog.csdn.net/qq_35859033/article/details/78534993
什么是平方圖呢,圖是一個矩陣,那么矩陣*矩陣得到一個矩陣,
cijc_{ij}cij?=∑K=1n\sum_{K=1}^nK=1n?aik?bkja_{ik}*b_{kj}aik??bkj?,而矩陣里每一格子(x,y)表示x到y可行否,那么 aik?bkja_{ik}*b_{kj}aik??bkj?1,則表示 i可到k,k可到j,那也就是說存在走兩步從 i到j 的路徑。那么cijc_{ij}cij? 表示的就是有多少條經過兩步從i到j的路徑==。

因此如果用鄰接矩陣表示的,從上面的公式可知就得用 o(VV(2v-1))的時間,
如果用鄰接鏈表表示,找每個邊用o(V+E),找aija_{ij}aij?用o(ViV_iVi?),找bjkb_{jk}bjk?再用O(VjV_jVj?),總共是o(V+EVV);
而如果用空間換時間,鄰接矩陣和鄰接鏈表都使用,那么o(V+EV);

22.1-6 多數以鄰接矩陣作為輸入的圖算法的運行時間為 Ω(V2V^2V2),但也有例外。給定圖G的鄰接矩陣表示,請給出一個O(V)時間的算法來判斷有向圖G中是否存在一通用匯點。通用匯點是指入度為 |V|-1但出度為0的結點。
如果i到j是
思考矩陣,如果橫行 i 表示出度,縱行 j 表示入度,那么要匯點也就是橫行都為0,

總結

以上是生活随笔為你收集整理的算法导论第22章部分答案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。