不知道你有沒有這樣的疑惑?為什麼一說資料結構或者演算法,它們總是會同時出現,這不應該是兩門課嗎?為什麼要整合到一起呢?
接下來我們就帶著問題去了解一下資料結構和演算法之間的關係。
什麼是資料結構?什麼是演算法?
其實,這樣是沒辦法的事。為了定義的明確和嚴謹,就得加很多限制條件,這樣就不會讓定義模稜兩可,但是這樣做的結果就是誰也看不懂。
下面我們就試著還原資料結構和演算法最本質的含義,能讓所有人都理解的概念。
資料結構是指一組資料的儲存方式。
演算法是指操作這組資料的一種方法。
舉個例子:
圖書館的藏書一般是根據書籍的類別和編號進行存放,這種存放方式就是資料結構。
那我們如何來找到其中的一本書呢?有很多種辦法,你可以從進門開始一本一本往後找。也可以按照書籍的類別和編號,是計算機、人文、科學、文學、經濟學。。。來定位書架,然後再依次查詢。這種查詢書籍的方法就是演算法。
接下來就可以回答我們開頭提的問題了,為什麼一說資料結構或者演算法,它們總是會同時出現呢?
這是因為,資料結構和演算法是相輔相成的。資料結構是為演算法服務的,演算法要作用在特定的資料結構之上。因此,我們無法孤立資料結構來講演算法,也無法孤立演算法來講資料結構。
資料結構從大的層面可分為邏輯結構和物理結構。邏輯結構是指資料元素之間的關係。物理結構是指資料在磁碟上儲存的方式。
邏輯結構
物理結構本質上學習資料結構和演算法是可以忽視語言的,因為所有的程式語言都能實現。但是這裡強烈建議使用c語言
進行演算法實現,因為c語言
可以讓你更深入的理解資料在記憶體中是如何進行儲存的。當你對c語言
有一定的理解之後,你就會發現其他都是什麼辣雞,只有c語言
寫才是最爽的,c語言
永遠滴神~
資料結構與演算法 1 什麼是資料結構
人們利用計算機的目的是解決實際問題.再面對實際問題時,首先要明確所要解決的問題設計到的個體.深入分析個體之間的關係,為其建立乙個數學模型,並分析其基本運算.然後確定恰當的資料結構來表示該模型,設計合適的資料儲存及相關演算法.最後完成具體的程式來解決實際問題.計算機求解問題的核心是演算法設計.而演算法...
什麼是資料結構和演算法
資料結構定義 我們把現實中大量而複雜的問題以特定的資料型別和特定的儲存結構儲存到主儲存器 記憶體 中,以及在此基礎上為實現某個功能 比如查詢某個元素,刪除某個元素,對所有元素進行排序 而 執行的相應操作,這個相應的操作也叫演算法。資料結構 個體 個體的關係 演算法 對儲存資料的操作 演算法 解題的方...
什麼是資料結構和演算法
程式 資料結構 演算法 資料結構是相互之間存在的一種或多種特定關係的資料元素的集合。包括4類基本的結構 集合 線形結構 樹形結構 圖狀或網狀結構。通俗點就是資料的邏輯結構,比方說這些資料在記憶體中以什麼樣的結構存放。演算法實際是程式設計過程中完成一件事採用的方法,比方說現實生活中做數學題時兩個人都將...