Course 0 課程介紹 Introduction

Slides:



Advertisements
Similar presentations
電腦與問題解決 5-1 電腦解題概論 5-2 電腦解題程序 5-3 演算法概論.
Advertisements

Course 1 演算法: 效率、分析與量級 Algorithms: Efficiency, Analysis, and Order
基本概論 Basic concepts.
第八章 連結分析 Link Analysis.
第7章 樹與二元樹 (Trees and Binary Trees)
動畫與遊戲設計 Data structure and artificial intelligent
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
Minimum Spanning Trees
Chap4 Tree.
Tree(樹) 什麼是「樹」? 「樹」的範例 「樹」的定義 「樹」的表示法.
資料結構 第3章 鏈結串列.
計算方法設計與分析 Design and Analysis of Algorithms 唐傳義
Chap5 Graph.
樹狀結構 陳怡芬 2018/11/16 北一女中資訊專題研究.
佇列與推疊 (Queue and Stack)
資料結構設計與C++程式應用 Fundamentals of Data Structures and Their Applications Using C++ 第3章 佇列 資料結構設計與C++程式應用.
資料結構簡介.
講師:郭育倫 第3章 基本資料結構 講師:郭育倫
Chap 3 堆疊與佇列 Stack and Queue.
Chapter 6 Graph Chang Chi-Chung
Course 4 搜尋 Search.
第8章 列舉器與集合 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
演算法方式總覽 The Divide-and-Conquer Strategy (個各擊破)(binary Searching、Quick Sort…. ) The Greedy Method(貪婪演算法) (Prim MST、Kruskal MST、Djikstra's algorithm) Dynamic.
Data Structure(資料結構) 授課老師: 蕭志明 助理教授 Ext:6779
Course 9 NP Theory序論 An Introduction to the Theory of NP
第十五章 Linked List, Stack and Queue
Chapter 2 – Chapter 4 Chang Chi-Chung
4 堆疊與佇列 4.1 前言 四種基本的資料結構 (可儲存資料的容器) 陣列 (Array)、串列(List): 最基本
演算法與資料結構 製作單位: 高雄市立高雄中學.
(Circular Linked Lists)
Chapter 7 圖形與網路 資料結構導論 - C語言實作.
第七章常見的演算法 目的:解決問題 遞迴演算法 (一)從程式語言的角度來看:就是程序自 己呼叫自己的情況。
第 七 章 樹狀結構 課程名稱:資料結構 授課老師:________ 2019/1/1.
第 六 章 鏈結串列(Link List) 課程名稱:資料結構 授課老師:________ 2019/1/2.
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
4.1 單向鏈結串列 4.2 堆疊的加入與刪除 4.3 佇列的加入與刪除 4.4 其他型式的佇列
樹狀結構 Tree Structure chapter 7 德明科技大學資訊科技系.
Data Structure.
Chap3 Linked List 鏈結串列.
Ch 3 Dynamic Programming (動態規劃).
樹 2 Michael Tsai 2013/3/26.
Ch07 圖形與網路 淡江大學 周清江
感謝同學們在加分題建議. 我會好好研讀+反省~
B+ Tree.
Chap4 Tree.
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
資料結構 優點 缺點 1 陣列 (Array) 沒有額外變量 (例head, next,...) 運作/操作較簡單 更新資料時,若要保持順序,需要移動較大量資料 靜態結構Static (宣告時已決定了陣列元素多少,不能在程式執行期間增減元素) 2 隊列Queue (FIFO) 容易更新 加入enqueue:
Total Review of Data Structures
VRP工具or-tools调研 王羚宇
Linked Lists Prof. Michael Tsai 2013/3/12.
第7章 樹與二元樹(Trees and Binary Trees)
计算机问题求解 – 论题 算法方法 2016年11月28日.
Chap2 Stack & Queue.
資料結構使用Java 第9章 樹(Tree).
蕭志明 老師 Algorithm(演算法) Ext:6779
蕭志明 老師 Algorithm(演算法) /FB:
Teacher: 郭育倫 Mail: 演算法 Teacher: 郭育倫 Mail:
講師:郭育倫 第2章 效能分析 講師:郭育倫
Course 8 回溯、分枝與限制 Backtracking, Branch-and-Bound
鄧姚文 資料結構 第八章:圖(Graph) 鄧姚文
陣列與結構.
计算机问题求解 – 论题 基本的数据结构 2018年05月09日.
Data Structure.
圖形結構 Graph Structure chapter 9 德明科技大學資訊科技系.
Graph 1 Michael Tsai 2012/4/24 連載: 學生上課睡覺姿勢大全
JAVA 程式設計與資料結構 第十七章 Tree.
JAVA 程式設計與資料結構 第二十一章 Graph.
13-1 電腦可以協助解決哪些問題 13-2 電腦解題簡介 13-3 電腦解題規劃-演算法 13-4 認識資料結構
資料結構 Data Structure (資管二)
Presentation transcript:

Course 0 課程介紹 Introduction

 Outline 了解本課程授課重點、目標及課程設計 了解本課程評分標準 課前重點 資料結構 v.s. 演算法 資料結構概念基礎複習

 教材 Text Book Reference Book 蔡宗翰, 演算法: 使用C++ 虛擬碼, 碁峰圖書, 2004. 講義下載處: http://www.csie.ntu.edu.tw/~d92005 Reference Book R. E. Neapolitan and K. Naimipour, Foundations of Algorithms: Using C++ Pseudocode, 3/e, Jones, 2004. (Textbook原文本) 李家同教授, Computational Biology, 全文電子書第二章. 洪逸, 洪捷, 演算法-名校攻略密笈, 鼎茂圖書. 洪逸, 資料結構(含精選試題), 鼎茂圖書.

 課程重點 前置觀念 演算法:效率,分析與量級 (Algorithms: Efficiency, Analysis, and Order) 遞迴 (Recursion) 排序 (Sort) 搜尋 (Search) 解題策略 Divide-and-Conquer (切割與征服) Dynamic Programming (動態規劃) The Greedy Approach (貪婪法則) Backtracking (回溯) Branch-and-Bound (分枝與限制) NP問題 An Introduction to the Theory of NP

 評分標準 期中考:35% 期末考:35% 平時考:20% 平時成績:10% 加分程式題:10%~20%

▓ 資料結構 v.s. 演算法 資料結構 演算法 ADT Array Linked List Stack Queue Tree Graph Divide-and-Conquer Dynamic Programming The Greedy Approach Backtracking Branch-and-Bound 複雜度分析 搜尋 (Search) 排序 (Sort) 高等樹 (Advanced Tree) 基礎 高階 Theory of NP: P Problem NP Problem NP Complete Problem NP Hard Problem ADT

資料結構概念基礎複習

▓ Array Def: 為表示有序的線性串列之一種方式 其佔用連續性的記憶體空間 各元素型態皆需相同 (一致) 支援Sequential及Random Access 插入、刪除元素較為麻煩 ∵需挪移其它元素 不易動態增刪空間大小

Array種類 一維陣列 二維陣列 三維陣列 N維陣列

▓ Linked List Def: 由一組節點 (Node)所組成的有序串列,各Node除了Data欄之外,另外有 ≥ 1 個Link欄 (或稱 Pointer),用以指向其它Node之位址。 有一個指標變數 (Pointer variable) 用來指出鏈結串列中的第一個節點之所在。指標變數的名字可用來做為其所指向之鏈結串列的名字。

Linked list的特質: 各Node不一定要佔用連續的Memory空間 各Node之型態 (Data Type) 不一定要相同 僅支援Sequential Access Insert/Delete Node 容易

Linked List 種類 nil F C

▓ Stack Def: 具有LIFO (last in-first out)或FILO (first in-last out) 性質的有序串列。 插入元素的動作稱為Push, 刪除元素的動作稱為Pop. Push/Pop的動作皆發生在同一端,此端稱為Top.

▓ Queue (佇列) Def: 具有FIFO (first in-first out) 性質的有序串列。其插入元素的動作稱為發生在Rear (尾)端, 刪除元素的動作發生在Front (前)端.

▓ Tree Def: Tree是由1個以上的Nodes所組成的有限集合,滿足: 至少有一個Node,稱為Root 其餘的Nodes分成T1, T2, …, Tn個互斥集合,稱為Subtree

▓ Binary Tree (二元樹) Def: Binary Tree為具有 ≥ 0 個nodes所構成的有限集合。 若不為空的樹,則具有Root及左, 右子樹,且左, 右子樹亦是Binary Tree。

二元樹之三個基本定理 [定理一]: 二元樹中,第i個level的node個數最多有 2i-1 個。 [定理二]: 高 (深) 度為k的二元樹,其node個數最多有 2k-1 個。 [定理三]: 非空二元樹若leaf個數為 n0 個,degree為2的node個數為n2個,則 n0 = n2+1。

二元樹的種類 Skewed Binary Tree Full Binary Tree Complete Binary Tree

Skewed Binary Tree Def: 可分為 Left-Skewed Binary Tree: 每個non-leaf node皆只有左子集 Right-Skewed Binary Tree: 每個non-leaf node皆只有右子集

Full Binary Tree Def: 具有最多Node個數的二元樹稱之 即: 高度為d,其node個數必為2d-1 具有n個nodes的Full B.T. ,其高度必為: 課本將之命名為: complete binary tree (7.6.1節)

Complete Binary Tree Def: 若二元樹高度為d,node個數為n,則 2d-1-1 < n < 2d-1 n個node之編號與高度d的full binary tree之前的n個node編號一一對應,不能跳號。 課本將之命名為: essentially complete binary tree (7.6.1節)

▓ Graph Def: A Graph is a collection of nodes, called vertices, and a collection of line segments, called edges, that connecting pairs of vertices. In other words, a graph consists of two sets a set of vertices a set of lines.

Graph may be either directed or undirected: Directed graph (或稱 Digraph) Each line has a direction to its successor. G = (V, E), 其中V為頂點集合,E為邊集合。<vi, vj> ≠ <vj, vi>。 Undirected graph Each line has no direction. G = (V, E), 其中V為頂點集合,E為邊集合。<vi, vj> = <vj, vi>。

▓ Data Type and Abstract Data Type Def: A data type consists of two parts a set of data the operations that can be performed on the data. For example: Integer Data: -∞, …, -2, -1, 0, 1, …, ∞ (沒有小數的數值集合) Operations: +, -, , , %, , , ==, !=, ++, --, … Floating point Data: -∞, …, -1.9, …, 0.0, …, ∞ Operations: +, -, , , %, , , ==, !=, … Character Data: ‘A’, ‘B’, …, ‘a’, ‘b’, … Operations: <, >, …

ADT (Abstract Data Type; 抽象資料型態) Def: ADT是一種Data Type,且要滿足: “資料的規格與操作的規格” 獨立於 “資料的實際表示方式與操作的實際製作方式.” User Request Designer Spec. of Data Objects Representation of Data Ex: a. b. c. … Spec. of Operations Implementation of Operations Ex: 1. 2. 3. … Hidden (隱藏)