用于解決加權(quán)圖(有向無環(huán)圖)中前往目的地的最短路徑。不能有負(fù)權(quán)邊 算法步驟: 1. 找到最短時間內(nèi)前往的節(jié)點(diǎn) 2. 對該節(jié)點(diǎn)的鄰居,檢查是否有前往它們的更短路徑 3.重復(fù)直到...
用于解決加權(quán)圖(有向無環(huán)圖)中前往目的地的最短路徑。不能有負(fù)權(quán)邊 算法步驟: 1. 找到最短時間內(nèi)前往的節(jié)點(diǎn) 2. 對該節(jié)點(diǎn)的鄰居,檢查是否有前往它們的更短路徑 3.重復(fù)直到...
廣度優(yōu)先搜索(breadth-first search)處理是否有A到B的路徑,如果有最短路徑是什么。 思路:建立圖---用廣度優(yōu)先搜索解決問題 在順序檢查是否為尋找的目標(biāo)時...
哈希表又叫散列表,python中提供的是函數(shù)dict。哈希表是一種強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),操作速度很快。非常適合用于防止重復(fù)。 散列函數(shù):將輸入映射到數(shù)字 1)每次映射的輸出必須一致...
快速排序運(yùn)用了遞歸的思想--分而治之(divide and conquer)時間復(fù)雜度O(N*logN) 分而治之一般有兩個步驟: 1)找到一個基線條件。這是不再調(diào)用自己的條...
遞歸的基本思想是分解,讓函數(shù)調(diào)用自己。在性能上,遞歸與循環(huán)一樣,沒有優(yōu)勢,但是遞歸很多時候在思路上更為清晰。 兩個重要條件:基線條件,遞歸條件 基線條件(base case)...
排序是很多算法的基礎(chǔ),很多算法的后續(xù)步驟是建立在有序的基礎(chǔ)之上的。 選擇排序:遍歷一個列表,每一次遍歷都找到整個數(shù)組中最小的值,然后將最小的值放在一個新的數(shù)組中,并在原列表中...
對象:有序的元素列表(list) 目標(biāo):一個元素(target) 時間復(fù)雜度:O(logN) log以2為底 思路:設(shè)置一個循環(huán),在每一次循環(huán)中都比較target和guess...
算法復(fù)雜度的回顧,一般來說考察復(fù)雜度會和各種排序算法聯(lián)系起來。因此弄清這些排序算法的具體的操作步驟就能明白為什么相應(yīng)的時間復(fù)雜度和空間復(fù)雜度是這么多。 常用的表示方法是大O表...