Data Structure

(一)資料結構學什麼

探討計算機系統所儲存(store)以及處理(process)的資料,並且學習如何組織這些資料,以及處理這些資料的方法。

(二)演算法定義

在有限步驟內解決數學問題的程序。 在計算機科學的領域中,演算法泛指"適合被實作為計算機程式的解題方法"

(三)程式的分析

(1)正確達到目的

(2)可維護性高

1.符合模組化原則,由上而下(top-down)的理解思路

2.常數、變數及函式(function)名稱是否有意義

3.函式的輸入、輸出及功能是否明確地定義

4.適當的地方加上註解

5.說明文件使否詳實完備

(3)效率高

(4)記憶體需求低

(四)Big-O符號

看出程式執行時間相對於問題大小的成長速度或成長趨勢

稱為程式或演算法的時間複雜度(time complexity)

常見的時間複雜度等級:

O(1):常數級 (constant)

O(lgn):對數級 (logarithmic)

O(n):線性級 (linear)

O(nlgn):對數-線性級 (log linear)

O(n2):平方級 (quadratic)

O(n3):立方級 (cubic)

O(2n):指數級 (exponential)

O(n!):階乘級 (factorial)

大小:O(1) < O(lgn) < O(n) < O(nlgn) < O(n2) < O(n3) < O(2n) < O(n!)

回首頁