數據結構和算法(第 1 章):什麼是數據結構和算法

不知道你有沒有這樣的疑惑?爲什麼一說數據結構或者算法,它們總是會同時出現,這不應該是兩門課嗎?爲什麼要整合到一起呢?

接下來我們就帶着問題去了解一下數據結構和算法之間的關係。

一、數據結構和算法之間的關係

什麼是數據結構?什麼是算法?

你去百度肯定能得到一堆結果,但這些搜索出來的結果根本就不是人能看懂的。所謂定義就是把所有人能看懂的問題說成誰也看不懂的詞。

其實,這樣是沒辦法的事。爲了定義的明確和嚴謹,就得加很多限制條件,這樣就不會讓定義模棱兩可,但是這樣做的結果就是誰也看不懂。

下面我們就試着還原數據結構和算法最本質的含義,能讓所有人都理解的概念。

數據結構是指一組數據的存儲方式。

算法是指操作這組數據的一種方法。

舉個例子:

圖書館的藏書一般是根據書籍的類別和編號進行存放,這種存放方式就是數據結構。

那我們如何來找到其中的一本書呢?有很多種辦法,你可以從進門開始一本一本往後找。也可以按照書籍的類別和編號,是計算機、人文、科學、文學、經濟學。。。來定位書架,然後再依次查找。這種查找書籍的方法就是算法。

接下來就可以回答我們開頭提的問題了,爲什麼一說數據結構或者算法,它們總是會同時出現呢?

這是因爲,數據結構和算法是相輔相成的。數據結構是爲算法服務的,算法要作用在特定的數據結構之上。 因此,我們無法孤立數據結構來講算法,也無法孤立算法來講數據結構。

二、數據結構的分類

數據結構從大的層面可分爲邏輯結構物理結構。邏輯結構是指數據元素之間的關係。物理結構是指數據在磁盤上存儲的方式。

邏輯結構

  • 集合結構

  • 線性結構

  • 樹形結構

  • 圖形結構

物理結構

  • 順序存儲

  • 鏈式存儲

三、代碼實現

本質上學習數據結構和算法是可以忽視語言的,因爲所有的編程語言都能實現。但是這裏強烈建議使用 C語言 進行算法實現,因爲 C語言 可以讓你更深入的理解數據在內存中是如何進行存儲的。當你對 C語言 有一定的理解之後,你就會發現其他都是什麼辣雞,只有 C語言 寫纔是最爽的, C語言 永遠滴神~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章