---------------------
作者:田春峯
來源:CSDN
原文:https://blog.csdn.net/accesine960/article/details/294517
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!
---------------------
最近涉及了一些圖的算法,發現用途蠻廣,比如:物流配送,中文分詞,甚至課程排列都可以用圖來表示和計算。無論哪種用途選擇一個合適的圖數據結構至關重要。
圖有兩種主要的表示方法:鄰接矩陣和鄰接表。
決定我們採用鄰接矩陣還是採用鄰接表來表示圖,需要判斷一個圖是稀疏圖還是稠密圖。鄰接矩陣和鄰接表表示圖所需的存貯空間和算法時間度相差非常大,所以判斷一個圖是稀疏的還是稠密的非常重要。
判斷標準如下:
假設一個圖G=(V,E)有n個節點,圖G的每個節點的出度是一個固定的常數:k。由於E=kV=O(V) ,所以我們把符合E=O(V) 條件的圖稱爲稀疏圖。
同理 :
如果一個圖G=(V,E)有n個節點,假設圖G的每個節點的出度是關於n的一個小數,並且0<f<=1,我們把符合E=fV2(平方)=V2(平方)條件的圖稱爲稠密圖。
比如:一個圖節點爲16,節點的出度爲4,那麼f = 0.25。
據說:鄰接表是表示圖的標準方法,原因是稠密圖在實際應用中並不多見。