數據結構主要用來組織數據,也做爲數據的容器,載體。算法
各類各樣的算法,都須要使用必定的數據結構來組織數據。數據庫
常見的典型數據結構有:segmentfault
上述能夠延伸出各類各樣的術語和結構,如列表,集合,哈希表,堆,優先隊列,二叉樹,紅黑樹,B+樹以及各類變種等。數組
咱們區別開數據結構和算法,是由於算法是更高層次的一種智慧結晶,目的就是爲了解決問題,基本的算法分類有:數據結構
計算機科學做爲數學的一個分支,大部分的數學知識都是離散數學。咱們學習微積分,都是連續的量,但是計算機處理的都是離散的量,數據不存在漸變,都是一個個離散數據。併發
因此針對離散的計算機科學來講,不少算法都是很簡單,也是富含哲學的。 也就是說,如今已知的全部算法,都是嚴格定義的,是死的,是千篇一概的。做爲解決平常生活的一種思路,不須要糾結算法是什麼分類,只要知道有這種方法,在何時須要使用它就好了。數據結構和算法
通常在平常工程開發中,也就是作軟件,作網站,基本只使用到排序和查找算法,甚至有些狀況下不須要使用。100%的平常開發場景是,我拿到一個數據存在數據庫,你須要這個數據,我再幫你找出來。函數
咱們會在後面的篇章介紹這些數據結構和算法。學習
我是陳星星,歡迎閱讀我親自寫的 數據結構和算法(Golang實現),文章首發於 閱讀更友好的GitBook。網站