99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DFS深度優(yōu)先搜索python代碼

冬至子 ? 來源:行在交通 ? 作者:ai聊天機器人 ? 2022-10-12 10:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近在寫分支定界求TSP的一個小項目,涉及到圖和樹的各種知識,就淺淺的從無向圖的遍歷開始總結(jié)一下近期的學(xué)習(xí)工作,使用DFS的遞歸遍歷無向圖。

鄰接矩陣、鄰接表等都可以用來表示一張圖,這里使用鄰接表數(shù)組來表示,即以頂點為索引的列表數(shù)組,具體實現(xiàn)使用字典來創(chuàng)建鄰接表數(shù)組。

poYBAGNGKzGACJOcAAAxE4eKOeo310.png

深度優(yōu)先搜索DFS簡單地來說,就是在訪問其中一個頂點時,將它標(biāo)記為已訪問,遞歸的訪問它所有沒有被標(biāo)記的相鄰頂點。

老習(xí)慣,上代碼。

poYBAGNGKzyAAuJ7AABb3wOjgys887.png

運行看結(jié)果。

poYBAGNGK0yAHvgcAACSUbrIQFo956.png

淺淺的分析一下遞歸的過程

poYBAGNGK1yAai82AACYeBpPqJc420.png

dfs(0) ---dfs(1)---0已經(jīng)被標(biāo)記了,下一個dfs(3)---1已經(jīng)被標(biāo)記了,所以下一個dfs(2)---graph[2]里的0,3都被標(biāo)記了,回到graph[3],接著dfs(5)--3已經(jīng)被標(biāo)記了,所以dfs(6)---接下來就簡單了,dfs(4)。好像就結(jié)束了應(yīng)該是這樣吧。

到這里如果就結(jié)束的話,顯得敷衍,折騰了一下,實現(xiàn)了一個簡單有點笨的s-v的路徑構(gòu)建的功能,還是用上面的例子來說明,最后visited = [0,1,3,2,5,6,4],根據(jù)這個標(biāo)記順序,會有且僅有0-1,1-3,3-2,3-5,5-6,6-4被選中(別問為什么,這是我的規(guī)則)。

pYYBAGNGK26AaZN4AAD8oxmDK2k515.png

首先運行前面的dfs,得到 visited = [0,1,3,2,5,6,4],根據(jù)這個標(biāo)記順序,會有且僅有0-1,1-3,3-2,3-5,5-6,6-4被選中(別問為什么,這是我的規(guī)則)。看第4和5行,將構(gòu)建u-v的路徑轉(zhuǎn)為構(gòu)建v-u的路徑。

會有人好奇為啥0到5的路徑為啥不是0-3-5這條,因為0-3沒有被標(biāo)記?。≈劣跒槭裁?,這就是我的規(guī)則,別管(懂的自然會懂我的心路歷程,不懂就算,反正構(gòu)建路徑又不對成本、距離等做要求)。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86773
  • TSP
    TSP
    +關(guān)注

    關(guān)注

    1

    文章

    25

    瀏覽量

    17213
  • DFS
    DFS
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    9408
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    零基礎(chǔ)入門:如何在樹莓派上編寫和運行Python程序?

    是一種非常有用的編程語言,其語法易于閱讀,允許程序員使用比匯編、C或Java等語言更少的代碼行。Python編程語言最初實際上是作為Linux的腳本語言而開發(fā)的。Py
    的頭像 發(fā)表于 03-25 09:27 ?757次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運行<b class='flag-5'>Python</b>程序?

    創(chuàng)建了用于OpenVINO?推理的自定義C++和Python代碼,從C++代碼中獲得的結(jié)果與Python代碼不同是為什么?

    創(chuàng)建了用于OpenVINO?推理的自定義 C++ 和 Python* 代碼。 在兩個推理過程中使用相同的圖像和模型。 從 C++ 代碼中獲得的結(jié)果與 Python*
    發(fā)表于 03-06 06:22

    運行OVModelForCausalLM Python模塊時出錯了,怎么解決?

    創(chuàng)建了一個自定義 Python* 代碼,類似于遵循 240-dolly-2-instruction 的 Jupyter 筆記本。 OVModelForCausalLM Python* 模塊運行時出錯。
    發(fā)表于 03-05 06:44

    百度搜索全量上線DeepSeek滿血版

    結(jié)果頁看到一個“AI+”的入口。點擊進入AI搜索模式,再下方會有一個提示“去試試‘滿血版’”,點擊它,用戶便能與DeepSeek進行深度對話。 據(jù)了解,這一更新是百度搜索和文心智能體平臺在2月16日共同宣布的。當(dāng)時,雙方宣布將全
    的頭像 發(fā)表于 02-19 13:58 ?930次閱讀

    百度搜索與文心智能體平臺接入DeepSeek及文心大模型深度搜索

    近日,百度搜索與文心智能體平臺聯(lián)合宣布了一項重要更新:將全面接入DeepSeek及文心大模型最新的深度搜索功能。這一更新將為用戶和開發(fā)者帶來更加智能、高效的搜索和智能體創(chuàng)建體驗。 據(jù)悉
    的頭像 發(fā)表于 02-17 09:14 ?641次閱讀

    使用Python實現(xiàn)xgboost教程

    裝: bash復(fù)制代碼conda install -c conda-forge xgboost 2. 導(dǎo)入必要的庫 在你的Python腳本或Jupyter Notebook中,導(dǎo)入必要的庫: python復(fù)制
    的頭像 發(fā)表于 01-19 11:21 ?1383次閱讀

    ChatGPT新增實時搜索與高級語音功能

    。OpenAI對搜索算法進行了深度優(yōu)化,使得ChatGPT能夠在用戶提出問題后,迅速獲取到分鐘級別的最新信息,包括股票、新聞等。這一功能的加入,極大地滿足了用戶對即時數(shù)據(jù)的需求,使得ChatGPT在各類應(yīng)用場景中更加得心應(yīng)手。 同時,ChatGPT還推出了高級語音功能。在
    的頭像 發(fā)表于 12-17 14:08 ?647次閱讀

    使用Python進行串口通信的案例

    python復(fù)制代碼 import serialimport time # 配置串口參數(shù)serial_port = '/dev/ttyUSB0' # 在Windows上可能是 'COM3' 或其他類
    的頭像 發(fā)表于 11-22 09:11 ?1472次閱讀

    對比Python與Java編程語言

    Python與Java都是目前非常流行的編程語言,它們各有其獨特的優(yōu)勢和適用場景。以下是對這兩種編程語言的對比: 一、語法和易用性 Python 語法簡潔,代碼更易讀,非常適合初學(xué)者。 動態(tài)類型系統(tǒng)
    的頭像 發(fā)表于 11-15 09:31 ?1112次閱讀

    如何用python控制usb2any?

    我想用python控制usb2any,在網(wǎng)上搜索后得到的關(guān)于usb2any的資料很少,是否有官方的usb2any函數(shù)庫?
    發(fā)表于 11-08 14:36

    使用Python進行圖像處理

    下面是一個關(guān)于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發(fā)表于 11-07 10:14 ?590次閱讀
    使用<b class='flag-5'>Python</b>進行圖像處理

    dp接口的最新技術(shù)發(fā)展

    深度優(yōu)先搜索DFS)是一種基本的算法,用于遍歷或搜索樹或圖。它從一個頂點開始,盡可能深地搜索
    的頭像 發(fā)表于 10-30 13:52 ?579次閱讀

    Python常用函數(shù)大全

    Python 世界里,有一些寶藏函數(shù)和模塊,它們可以讓你編程更輕松、代碼更高效。這篇文章將帶你一一認識這些神器,讓你的開發(fā)生活瞬間輕松不少!
    的頭像 發(fā)表于 10-27 17:20 ?919次閱讀

    如何用python控制usb2any?

    我想用python控制usb2any,在網(wǎng)上搜索后得到的關(guān)于usb2any的資料很少,是否有官方的usb2any函數(shù)庫?
    發(fā)表于 09-27 06:44

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了一個非常受歡迎的框架。本文將介紹PyTorch和Python之間的關(guān)系,以及它們在深度學(xué)習(xí)領(lǐng)域的應(yīng)用。 Python簡介 Python是一種高級、解釋型、通用
    的頭像 發(fā)表于 08-01 15:27 ?3284次閱讀