iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 1
0

學習動機

寫程式一段時間了,對於資料結構的觀念仍然不是太清楚,於是希望透過鐵人賽督促自己努力學習,並且訓練自己的表達能力。

為什麼要學資料結構呢

Niklaus Wirth的一本書的書名(Algorithms + Data Structures = Programs)
為電腦科學中的名句,中文如下:

程式 = 資料結構 + 演算法

從上述的類數學公式,我們可以知道要寫出一個好的程式,資料結構的使用演算法的設計都是非常重要的。

那何謂好的程式呢?

  1. 能正確的達到目的、解決問題

  2. 可維護性高

    • 可讀性
    • 註解
  3. 占用的記憶體少

  4. 程式執行效率高

    ∵ 要占用少的記憶體,就會使執行效率變慢;且程式執行效率快,就需要使用較大的記憶體空間。
    ∴ 記憶體與效率兩種需求只能兩個選一個滿足。


所以,資料結構是什麼呢?

先說說資料 Data 是什麼吧

資料,用具體符號表示,而能夠被計算機處理的資訊。

ex:成績、姓名、課表

資訊 Information

指由資料所呈現出來且是經由人們分析而理解的訊息。

ex:紀錄、排序、整合

  • 資料經過處理變成資訊
    https://ithelp.ithome.com.tw/upload/images/20181030/2011243802dCQY1U33.jpg

結構

一個主題中各個組成要素之間的關係。

定義

資料結構 指的就是程式所需要使用的資料於記憶體中儲存的方式,其是由演算法建立並且做運用。
不相同的演算法,可能需要使用不同的資料結構來儲存。選擇正確的資料結構,是可以提高演算法的效率。
簡單來說,當資料存在記憶體中的時候,決定資料的存放順序及存放位置的,就是資料結構。

  • 常見的資料結構有 : Array、Linked List、Stack、Queue、Graph、Tree

註:演算法在韋氏辭典中定義為
在有限步驟內,解決數學問題的程序

演算法就不在此多贅述,將重心放在資料結構為主。

參考

細談資料結構 第六版
ISBN 978-986-312-014-8


系列文內容大綱


下一篇
[Data Structure][Array]
系列文
學習資料結構30天30

尚未有邦友留言

立即登入留言