算法是程序的靈魂,算法能夠告訴開發(fā)者在面對一個項目功能時用什么思路去實現(xiàn),有了這個思路后,編程工作只需遵循這個思路去實現(xiàn)即可。本書循序漸進、由淺入深地詳細(xì)講解了算法實現(xiàn)的核心技術(shù),全書共12章,分別講解了初步認(rèn)識算法思想、枚舉算法思想、遞歸算法思想、分治算法思想、貪心算法思想、回溯算法思想、迭代算法思想、查找算法、排序算法、使用算法解決數(shù)據(jù)結(jié)構(gòu)問題、解決數(shù)學(xué)問題和經(jīng)典算法問題。全書通過具體實例的實現(xiàn)過程演練了各個知識點的具體使用流程,引領(lǐng)讀者全面掌握算法的核心技術(shù)。
    本書旨在幫助有一定編程經(jīng)驗的Python初級程序員系統(tǒng)學(xué)習(xí)算法思想,積累實戰(zhàn)經(jīng)驗,迅速提升編程技能,掌握Python算法的精髓。
		
	
第1章  初步認(rèn)識算法思想
  1.1  什么是算法
    1.1.1  一道趣味題
    1.1.2  算法的定義
    1.1.3  計算機中的算法
    1.1.4  總結(jié)算法的特征
  1.2  算法是程序的靈魂
  1.3  算法的表示方法
    1.3.1  用流程圖來表示算法
    1.3.2  用N-S流程圖來表示算法
  1.4  Python算法思想
    1.4.1  常用的算法思想
    1.4.2  衡量算法優(yōu)劣的標(biāo)準(zhǔn)
    1.4.3  算法復(fù)雜度
    1.4.4  時間復(fù)雜度與空間復(fù)雜度的取舍問題
  1.5  小結(jié)
第2章  枚舉算法思想
  2.1  枚舉算法基礎(chǔ)
    2.1.1  枚舉算法介紹
    2.1.2  Python中枚舉算法的實現(xiàn)思路
  2.2  算法演練——找出符合條件的5位數(shù)
    2.2.1  算法分析:首位數(shù)不能是誰
    2.2.2  具體實現(xiàn)
  2.3  算法演練——24點游戲
    2.3.1  算法分析:加括號和去除重復(fù)表達(dá)式
    2.3.2  具體實現(xiàn)
    2.3.3  第二種方案:列表切片操作實現(xiàn)排列組合
    2.3.4  第三種方案:itertools模塊實現(xiàn)排列組合
  2.4  算法演練——解決熄燈問題
    2.4.1  算法分析:規(guī)則中的規(guī)律
    2.4.2  具體實現(xiàn)
  2.5  算法演練——解決“討厭的青蛙”問題
    2.5.1  算法分析:縮小解的空間
    2.5.2  具體實現(xiàn)
  2.6  小結(jié)
第3章  遞歸算法思想
  3.1  遞歸算法思想基礎(chǔ)
  3.2  算法演練——解決“斐波那契數(shù)列”問題
    3.2.1  算法分析:找出兔子增加的規(guī)律
    3.2.2  具體實現(xiàn)
  3.3  算法演練——解決“漢諾塔”問題
    3.3.1  算法分析:情景模擬移動過程
    3.3.2  具體實現(xiàn)
  3.4  算法演練——解決“階乘”問題
    3.4.1  算法分析:拆分調(diào)用
    3.4.2  具體實現(xiàn):顯示6以內(nèi)階乘過程
  3.5  算法演練——進制轉(zhuǎn)換器
    3.5.1  算法分析:除以2獲取余數(shù)
    3.5.2  具體實現(xiàn):輸出十進制數(shù)字10對應(yīng)的二進制數(shù)
  3.6  算法演練——分解數(shù)字
    3.6.1  算法分析:遞歸除以10
    3.6.2  具體實現(xiàn):分解5位整數(shù)12345
  3.7  算法演練——解決二叉樹遍歷問題
    3.7.1  算法分析:實現(xiàn)三種遍歷方式
    3.7.2  實現(xiàn)樹的結(jié)構(gòu)
    3.7.3  二叉樹遞歸遍歷方案
  ……
第4章  分治算法思想
第5章  貪心算法思想
第6章  回溯算法思想
第7章  迭代算法思想
第8章  查找算法
第9章  排序算法
第10章  使用算法解決數(shù)據(jù)結(jié)構(gòu)問題
第11章  解決數(shù)學(xué)問題
第12章  經(jīng)典算法問題