Python資料結構與演算法筆記(3)

2021-08-22 04:33:57 字數 516 閱讀 2296

problem-solving-with-algorithms-and-data-structure-using-python 中文版

4 遞迴

遞迴是一種解決問題的方法,將問題分解為更小的子問題,直到得到乙個足夠小的問題可以被很簡單地解決,通常遞迴設計函式呼叫自身。遞迴允許我們編寫優雅的解決方案,解決可能很難程式設計的問題

遞迴演算法必須服從三個重要的定律:

遞迴演算法必須具有基本情況

遞迴演算法必須改變其狀態並向基本情況靠近

遞迴演算法必須以遞迴的方式呼叫自身

整數轉換為任意進製字串

1. 將原始數字減少為一系列單個位數字

2. 使用查詢將單個位數字轉換為字串

3. 將單個位字串鏈結在一起形成最終結果

電腦科學中的許多程式是為了優化一些值而編寫的,例如,找到兩個點之間的最短路徑,找到最合適的一組點的線,或找到某些標準的最小物件集。動態規劃就是這些型別的優化問題的乙個策略。

Python資料結構與演算法筆記(2)

problem solving with algorithms and data structure using python 中文版 3 基本資料結構 棧 佇列 deques 列表是一類資料的容器,它們資料項之間的順序由新增或刪除的順序決定。一旦乙個資料項被新增,它相對於前後元素一直保持該位置不變...

Python資料結構與演算法筆記(6)

problem solving with algorithms and data structure using python 中文版 7 圖和圖的演算法 頂點 邊 權重 路徑 迴圈 沒有迴圈的圖形稱為非迴圈圖 沒有迴圈的有向圖稱為有向無環圖或dag。圖抽象資料型別如下 實現圖的兩種方式 鄰接矩陣和...

資料結構與演算法(python) 學習筆記

1 集合和字典一樣,它們的元素沒有乙個明確定義的順序 2 慎用 beta 4,5 有坑 3 常用的序列運算子 s t序列的連線,k s序列連線,val in s檢查元素val在序列s中,val not in s 檢查元素val不在序列s中 4 慎用break和continue語句,有坑 5 在函式中...