做者:xiabodan 出處:http://blog.csdn.net/xiabodan
算法和數據結構是計算機科學的核心內容。做爲程序猿,編程是咱們的實戰項目。然而,寫出程序還不夠。一個程序在應對一些大型而複雜的狀況時。會耗費大量的時間。咱們可以很是easy寫出一個從文件裏找到一個詞的程序。比方逐詞掃描。看是否相符。但假設咱們的文件有幾十TB,而且要從文件裏找到上百個詞,逐個掃描的辦法就差點兒不可行。咱們需要優化程序,以便咱們的程序可以應對複雜問題。python
算法研究解決這個問題的方法,而數據結構則是設計一種更好的組織數據和使用數據的方式。二者有很是強的相互依賴關係,因此每每放在一塊兒討論。(摘自vamei博客: http://www.cnblogs.com/vamei)
做爲一枚都快要畢業的研究僧。非科班出身,主要作圖像處理,機器人視覺方面的工做。本科作嵌入式硬軟件。覺得本身的編程還算過得去,研究生期間看過很是多國外大牛寫的project。本身也都是在用別人的工程,感慨別人的專業技能太強了,詳細表現在既能推公式,寫paper,Oral presentation如此的精彩,就連算法的代碼也寫得如此之好,不說精湛嘛至少也是高效、整潔、穩定,看過別人的Curriculum Vitae(CV),skills從C/C++,matlab,python一直到PHP。SQL;OpenCV,GL,MP能用的都會了,我認爲這都得益於他們紮實的語言基礎,固然數據結構與算法也是當中比較重要的部分。git
看過很是多東西比不表明就會了,細節部分過重要了,以致於當我想親自構建一個project的時候感受思路有,卻很是多細節地方不明不白,上次去面試要現場寫算法程序才發現,理解了和懂了是兩碼事,基礎太菜傷不起。
本系列文章將從最簡單一步一步在懂了的前提下親本身主動手寫。github
平臺採用raspberry 2 B,注意執行結果可能會與VS2012有出入。期間會穿插一些Linux的基礎比方命令,Makefile編寫。多線程編程等。面試
最後會完畢一個小的數據結構project,代碼見github:https://github.com/xiabodan/DataStructure 保持持續更新。Linux用戶直接download代碼:
git clone https://github.com/xiabodan/DataStructure.git算法
數學知識複習編程
排序算法(插入。希爾,選擇。冒泡,歸併。快排,堆排) markdown
表(list) 數據結構
棧(stack) 多線程
隊列(queue) 優化
參考: 數據結構與算法分析-C語言描寫敘述[M],機械工業出版社