• 沒有找到結果。

資料結構基本概念

N/A
N/A
Protected

Academic year: 2021

Share "資料結構基本概念"

Copied!
14
0
0

加載中.... (立即查看全文)

全文

(1)

講師:洪安

資料結構基本概念

Data Structure

(2)

資料結構(Data Structure)

 課程目的

根據資料的特性與數量,將資料作最適當的安排、儲 存,以方便資料的更新及存取

 重要性

資料結構暨演算法(Data Structure & Algorithm) 名列電腦相關課程的第一名 (1980 年期末之問卷調 查,調查對象為美國著名大學之電機、資訊系主任)

2

2 資料結構與C++程式設計進階班

(3)

資料(Data)與資訊(Information) (1/2)

 資料 (Data)

表達一個觀念或一個事件的一群文字、數字、符號或 圖表

 資訊 (Information)

從一大群資料中,經過有系統的整理、分析、加工處 理所提煉出來的,可以作為參考或決策依據、有意義 的文字、數字、符號或圖表

(4)

資料(Data)與資訊(Information) (2/2)

4

4 資料結構與C++程式設計進階班

(5)

資料表示法 –浮點數

 不帶正負符號的固定點式(Unsigned Integer)

這種表示法通常佔兩個位元組,全部的位元均用來表 示一個數值,其數值的範圍為0至65535之間

 短浮點式

 長浮點式

(6)

資料結構課程探討六大主題

1.

節省記憶體空間

2.

各種不同的資料結構表示法和其相關的演算法

3.

有效地改進演算法的效率,使程式的執行速度更快

4.

以最有利於使用者介面之方式來建構資料存取方法、資料儲存之 結構和資料儲存之媒體

5.

資料處理的各種技巧,比如:排序、搜尋、合併、更新、分配等 演算法之介紹和比較

6.

程式模組織單元化,以有效提昇軟體開發之生產力

6

6 資料結構與C++程式設計進階班

(7)

選擇資料結構的考量

1. 資料量的多寡?

2. 資料有沒有常常增刪或更新?

3. 資料擷取次數之多寡?

4. 儲存資料所需之記憶體空間?

5. 擷取資料所能忍受的時間?

6. 是否很容易編寫程式碼?

7. 要不要預留很大的記憶體空間?

8. 當找不到所需的資料時,是否花很長的一段時間

才能確定?

(8)

程式的發展步驟 (1/2)

1. 分析問題:

分析資料、分析研究問題,決定是否採行計算機作 業,規劃輸入輸出格式,尋求一個解決的方法

2. 撰寫演算法:

根據問題規格,撰寫合適之演算法

3. 撰寫程式:

選擇適當之程式語言,將演算法的處理邏輯逐步轉 換成程式

8 資料結構與C++程式設計進階班 8

(9)

程式的發展步驟 (2/2)

4. 編輯程式:

利用電腦終端設備,輸入及編輯程式

5. 編譯、除錯、測試及執行程式:

計算機處理、饋入、編譯、執行、除錯及測試

6. 文件整理:

包含演算法、操作說明、原始程式列印、測試資料 及測試結果

(10)

判斷程式好壞的標準 (1/2)

1.正確性:

是否完成所規定之事項,並正確的解決問題

2.可讀性:

是否讓人容易了解程式之原意

3.易維護性:

程式是否具有單元程序、結構化、模組化之基礎

10 資料結構與C++程式設計進階班 10

(11)

判斷程式好壞的標準 (2/2)

4.清晰性:

程式中的變數名稱、段落名稱等皆須有意義,即應有 程式編寫的風格

5.文書性:

是否有完備的程式說明文件

6.效率性:

是否簡單、明瞭地直接表示程式的意圖,以最少的程 式碼、最快的執行速度來完成

(12)

良好的程式編寫風格 (1/3)

1. 程式要段落分明,並以有條不紊的區塊式排列

2. 識別字 (Identifier: constant or variable) 的命名 須有意義

3. 須簡單且直接表達程式的意義,若能引用內建函 數就直接引用

12 資料結構與C++程式設計進階班 12

(13)

良好的程式編寫風格 (2/3)

4. 撰寫結構化程式,引用基本的控制流程結構

5. 儘量少用 GOTO 指令,避免不必要之分枝 (Branch) 6. 多開發副程式 (Subroutine),儘量使程式單元化

7. 儘量輸入與輸出 (Presentation)、處理邏輯 (Logic) 與 資料儲存 (Data Store) 三者獨立開來

(14)

良好的程式編寫風格 (3/3)

8. 輸入資料的次數,儘量不要預定數量,應以特殊記 號代表資料的結尾,如此資料的輸入次數將較有彈 性

9. 先考慮程式的正確性、清晰性、易讀性及可維護性,

接著再考慮程式的效率性

10. 程式需要適時適地加上一些註解 (Comments),

以提升程式的可讀性

14 資料結構與C++程式設計進階班 14

參考文獻

相關文件

依個人資料保護法第八條規定,本會將會蒐集個人資料,要求輸

「公告品名成份規格」欄位預設帶入公告資料,請依

Chou, King-Leung Wong, and Yung-Hsiang Li,“The complete heat transfer solutions of an insulated regular polyhedron pipe by using a RPSWT model,” Energy Conversion and

下列哪一種記憶體屬於非揮發性記憶體, 不會因電源關閉而使其中的資料消 失, 但是可以透過電壓的方式重複抹除資料, 可用於基本輸入/ 輸出系統 (Basic Input / Output System,BIOS)

Shih-Cheng Horng , Feng-Yi Yang, “Embedding particle swarm in ordinal optimization to solve stochastic simulation optimization problems”, International Journal of Intelligent

 想要設計一個具有兩個輸入G(gate閘控)和 D(data資料)以及一個輸出Q的閘控閂電 路。當G等於1時,在輸入D出現的二進位資料

 駭客集團「Gameover Zeus」被指自 2006 年起就散播病毒,入侵企業及個人 電腦,並利用儲存於電腦內的使用者密 碼與私人資料 登入銀行戶頭盜取資 金 ;此外,Gameover

 試著將投影片第 12 頁的範例加上 critical section ,解決 race