數據結構&算法實踐——Python
--------------------------------------目錄 START------------------------------------------------
第一部分列表(目錄主要來自於維基百科)
模塊一:經典排序實現
交換排序法
冒泡排序 |雞尾酒排序 |奇偶排序 |梳排序 |地精排序(gnome_sort) |Bogo排序|快速排序
選擇排序法
選擇排序 |
堆排序
插入排序法
插入排序 | 希爾排序 | 二叉查找樹排序 | Library sort | Patience sorting
歸併排序法
歸併排序 | Strand sort
非比較排序法
基數排序 | 桶排序 | 計數排序 | 鴿巢排序 | Burstsort | Bead sort
其他
拓撲排序 | 排序網絡 | Bitonic sorter | Batcher odd-even mergesort | Pancake sorting
低效排序法
Bogosort | Stooge sort
模塊二:經典查找
模塊三:數據結構(後續補充完整,樹和圖是大頭,包含很多分類和經典算法)
線性表 隊列 棧 堆 樹 圖
--------------------------------------目錄 END------------------------------------------------
寫在前面
畢業迄今也接近一年了,發現很多學校的東西似乎生疏了.
最近重新拿起數據結構,算法導論,離散數學,決定用代碼敲些東西,權當複習
大部分的地方我只會給出例子和具體的代碼實現,順帶給出一些百科的鏈接,概念和理論性的東西網上都有,不贅述了
之所以選擇用python來寫,主要是python的可讀性非常好,即使不寫註釋,也能很輕鬆讀懂.
我把這個過程大概切成三個部分:
1.經典數據結構和算法的實現
實現基本的經典算法,包括經典排序,經典查找,索引等,基本實現及改進
實現基本的數據結構,包括線性表,隊列,棧,堆,樹,圖等,包含擴展
使用實現類似Java的數據結構,至始至終都認爲java的api最爲優美,使用Python實現之,包括Map,List,Set等,提供相同的API,同時希望
會循序漸進,先用簡單直觀的方法實現,給出優化,涉及的知識主要是python面向對象,繼承,重寫內置方法,封裝,(要對Python和java數據結構實現的底層源碼有了解,需要看源代碼)
2.筆試題面試題數據結構和算法實現
筆試&面試題的python處理
使用Python搞定筆試題&面試題中出現的算法和數據結構題目
包含大規模數據處理的詳細例子
3.challenge
挑戰一些大個的東西,深入實現一些較爲複雜的算法
不羅嗦,先列下目錄,已經寫完一部分了,逐步發出來,更新目錄(挪到前頭去了)
先列這些,逐漸補充.
每天上完班回來,啃這堆磚頭,然後敲出來,累卻充實.
敲代碼,調試代碼其實是一件十分快樂的事情
My daytime job is SDET,平時敲自己喜歡的代碼的時間並不會太多,業餘時間有限
但做事貴善始善終,會堅持搞完的哈!
The End!
2012-05-10