最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

《漫畫算法2:小灰的算法接近》第三章 圖

2023-03-24 15:46 作者:方程星  | 我要投稿

什么是圖

樹的節(jié)點(diǎn)之間是一對(duì)多的關(guān)系,并且存在父與子的層級(jí)劃分;而圖的頂點(diǎn)(注意,這里不叫節(jié)點(diǎn))之間是多對(duì)多的關(guān)系,并且所有頂點(diǎn)都是平等的,無所謂誰是父誰是子。
在圖中,最基本的單元是頂點(diǎn)(Vertex),相當(dāng)于樹中的節(jié)點(diǎn)。頂點(diǎn)之間的關(guān)聯(lián)關(guān)系,被稱(Edge),每個(gè)邊上的數(shù)字為邊的權(quán)重(Weigh)

涉及權(quán)重的圖,被稱為帶權(quán)圖(Weighted Graph)

有向圖:頂點(diǎn)之間的邊有了方向的區(qū)分,這種帶有方向的圖被稱為有向圖

圖的存儲(chǔ)方式有很多種,最常用的方式包括鄰接矩陣和鄰接表

鄰接矩陣

擁有n個(gè)頂點(diǎn)的圖,它所包含的連接數(shù)量最多是n×(n-1)個(gè)。因此,要表達(dá)各個(gè)頂點(diǎn)之間的關(guān)聯(lián)關(guān)系,最清晰易懂的方式是使用n×n的二維數(shù)組(矩陣)。

根據(jù)圖的4個(gè)頂點(diǎn),創(chuàng)建了一個(gè)4×4的矩陣; 頂點(diǎn)0和頂點(diǎn)1之間有邊關(guān)聯(lián),那么矩陣中的元素A[0][1]與A[1][0]的值就是1;頂點(diǎn)1和頂點(diǎn)2之間沒有邊關(guān)聯(lián),那么矩陣中的元素A[1][2]與A[2][1]的值就是0

像這樣表達(dá)圖中頂點(diǎn)關(guān)聯(lián)關(guān)系的矩陣,就叫作鄰接矩陣

無向圖對(duì)應(yīng)的矩陣是一個(gè)對(duì)稱矩陣;

矩陣從左上到右下的一條對(duì)角線,其上的元素值必然是0

有向圖的鄰接矩陣

鄰接矩陣的優(yōu)點(diǎn):簡(jiǎn)單直觀,可以快速查到一個(gè)頂點(diǎn)和另一頂點(diǎn)之間的關(guān)聯(lián)關(guān)系

鄰接矩陣的缺點(diǎn):占用了太多的空間

鄰接表

為了解決鄰接矩陣占用空間的問題,人們想到了另一種圖的表示方法:鄰接表

在鄰接表中,圖的每一個(gè)頂點(diǎn)都是一個(gè)鏈表的頭節(jié)點(diǎn),其后連接著該頂點(diǎn)能夠直接到達(dá)的相鄰頂點(diǎn)
逆鄰接表每一個(gè)頂點(diǎn)作為鏈表的頭節(jié)點(diǎn),后繼節(jié)點(diǎn)所存儲(chǔ)的是能夠直接到達(dá)該頂點(diǎn)的相鄰頂點(diǎn)

圖的遍歷

遍歷圖的兩種主要方式:深度優(yōu)先遍歷簡(jiǎn)稱DFS(Depth First Search),廣度優(yōu)先遍歷簡(jiǎn)稱BFS(Breadth First Search)

先深入探索,走到頭再回退尋找其他出路的遍歷方式,就叫作深度優(yōu)先遍歷(DFS)

樣一層一層由內(nèi)而外的遍歷方式,就叫作廣度優(yōu)先遍歷(BFS)

圖的最短路徑

迪杰斯特拉算法的原理:這個(gè)算法的本質(zhì),是不斷刷新起點(diǎn)與其他各個(gè)頂點(diǎn)之間的“距離表”。

時(shí)間復(fù)雜度可以優(yōu)化到O(elogn)

迪杰斯特拉算法的主要目標(biāo),是求出圖中頂點(diǎn)A到頂點(diǎn)B的最短路徑,但也順便得到了一個(gè)有價(jià)值的副產(chǎn)品,就是求出了從頂點(diǎn)A到其他所有頂點(diǎn)的最短路徑,因此,迪杰斯特拉算法被稱為圖的單源最短路徑算法。

圖的多源最短路徑

弗洛伊德算法,專門用于尋找圖的多源最短路徑。

小結(jié)

圖是一種多對(duì)多的數(shù)據(jù)結(jié)構(gòu),最基本的單元是頂點(diǎn),頂點(diǎn)之間由邊關(guān)聯(lián);

無權(quán)圖的邊沒有權(quán)重概念;帶權(quán)圖的每一條邊擁有自己的權(quán)重;

無向圖的頂點(diǎn)關(guān)聯(lián)是對(duì)稱的;有向圖的頂點(diǎn)關(guān)聯(lián)不完全對(duì)稱,頂點(diǎn)A觸達(dá)頂點(diǎn)B,頂點(diǎn)B未必觸達(dá)頂點(diǎn)A;

圖的主要存儲(chǔ)方式包括鄰接矩陣和鄰接表/逆鄰接表;

圖的遍歷方式,分為深度優(yōu)先遍歷和廣度優(yōu)先遍歷;

尋找圖的單源最短路徑,可以使用迪杰斯特拉(Dijkstra)算法;尋找圖的多源最短路徑,可以使用弗洛伊德(Floyd)算法




《漫畫算法2:小灰的算法接近》第三章 圖的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
英吉沙县| 陈巴尔虎旗| 南京市| 迭部县| 孟州市| 九寨沟县| 六枝特区| 射阳县| 洪江市| 平利县| 霍林郭勒市| 奉贤区| 虎林市| 泽普县| 恩施市| 庆安县| 吉木萨尔县| 泗洪县| 普定县| 中山市| 阳曲县| 清镇市| 田阳县| 和田县| 海丰县| 彭州市| 巴中市| 罗江县| 孝感市| 高密市| 钦州市| 建水县| 北海市| 南郑县| 河源市| 曲水县| 岳西县| 太保市| 延吉市| 陇川县| 大田县|