Introduction.

Slides:



Advertisements
Similar presentations
While 迴圈 - 不知重複執行次數
Advertisements

Course 1 演算法: 效率、分析與量級 Algorithms: Efficiency, Analysis, and Order
基本概論 Basic concepts.
MATLAB 程式設計 時間量測 清大資工系 多媒體資訊檢索實驗室.
親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
Introduction 基本概念 授課老師:蕭志明
第一章 資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 演算法效能分析 1-4 物件導向程式設計與Java.
資料結構與演算法 課程教學投影片.
Chapter 3 The Fundamentals : Algorithms, the Integers, and Matrices
布林线及五日均线.
用“自言自语法”提高学生 英语口头表达能力 李奉栖.
请将手机调整到静音状态 实验网站:program3.ccshu.net 资源网站:class.ccshu.org/ /
Performance Evaluation
学生培养的过程性评价.
第8章 字串與陣列 8-1 字串處理 8-2 一維陣列的處理 8-3 建立多維陣列 8-4 不規則陣列與參數傳遞 8-5 陣列排序與搜尋.
課程名稱:資料結構 授課老師:_____________
Introduction to the C Programming Language
選擇排序法 通訊一甲 B 楊穎穆.
第十章 排序與搜尋.
Chap 2 用C语言编写程序 2.1 在屏幕上显示 Hello World! 2.2 求华氏温度 100°F 对应的摄氏温度
第 7 章 陣列 (Array).
第 1 章 演算法分析.
搜尋資料結構 Search Structures.
程式撰寫流程.
SQL Stored Procedure SQL 預存程序.
(Circular Linked Lists)
CHAP13 演算法概論 高中資訊科技概論 松崗圖書公司.
程式設計專題.
資料結構 第1章 導論.
Java 程式設計 講師:FrankLin.
計數式重複敘述 for 迴圈 P
遞迴 Recursive 授課老師:蕭志明.
資料結構 優點 缺點 1 陣列 (Array) 沒有額外變量 (例head, next,...) 運作/操作較簡單 更新資料時,若要保持順序,需要移動較大量資料 靜態結構Static (宣告時已決定了陣列元素多少,不能在程式執行期間增減元素) 2 隊列Queue (FIFO) 容易更新 加入enqueue:
Sorting in Linear Time Michael Tsai 2013/5/21.
鄧姚文 資料結構 第一章:基本概念 鄧姚文
鄧姚文 資料結構 第五章:遞迴 鄧姚文
Week 2: 程式設計概念與 演算法的效能評估
证书发放工作要点及流程 学院办公室.
Chap 1 概論Overview.
資料結構與C++程式設計進階 排序與搜尋 講師:林業峻 CSIE, NTU 6/ 14, 2010.
第1章 绪论 2019/4/16.
資料結構與演算法 第一章 基本概念 徐熊健 資料結構與演算法 徐熊健.
Instructor:Po-Yu Kuo 教師:郭柏佑
Lucene 算法介绍 IR-Lab 胡晓光.
Course 10 削減與搜尋 Prune and Search
蕭志明 老師 Algorithm(演算法) Ext:6779
蕭志明 老師 Algorithm(演算法) /FB:
演算法時間複雜度 (The Complexity of Algorithms)
C qsort.
資料結構與C++程式設計進階 遞迴(Recursion) 講師:林業峻 CSIE, NTU 6/ 17, 2010.
資料結構簡介 綠園.
演算法分析 (Analyzing Algorithms)
陣列與結構.
复杂度和测试数据 吴章昊.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
黃影雯副教授講授 E_Mail Address:
Chapter 1 演算法分析 1.1 演算法 1.2 Big-O.
Multi-threaded Algorithm 3
1753: Need for Speed ★★☆☆☆ 題組:Problem Set Archive with Online Judge
程式設計--Quick Sort 通訊一甲 B 楊穎穆.
本教學投影片係屬教科書著作之延伸,亦受著作權法之保護。
The role of Algorithms in Computing
資料結構 老師:李崇明 助教:楊斯竣.
All Sources Shortest Path The Floyd-Warshall Algorithm
10107: What is the Median? ★★☆☆☆
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算
士師記.
13-1 電腦可以協助解決哪些問題 13-2 電腦解題簡介 13-3 電腦解題規劃-演算法 13-4 認識資料結構
方法(Method) 函數.
Presentation transcript:

Introduction

為何要學演算法(1/2) 排序問題(sorting): 11, 7, 14, 1, 5, 9, 10 ↓sort 1, 5, 7, 9, 10, 11, 14  Insertion sort Quick sort …..

為何要學演算法(2/2) 生物科技近來相當熱門,你知道如何利用電腦來幫助解決生物上的問題嗎?你知道生物資訊嗎? 你在研究多媒體資料壓縮嗎?你知道VQ(Vector Quantization)與Voronoi diagram的關係嗎?你知道你的壓縮方法是heuristic嗎? 如果要下棋,你知道有哪些策略可以搜尋棋步嗎?

演算法的目標 演算法是電腦科學研究的基礎 如果沒學過演算法,電腦科學的研究就無法深入

資料結構和演算法 資料結構和演算法要用程式語言來描述,才能交由電腦執行,至於要用那一種程式語言;並沒有特別規定

演算法定義 由有限步驟所構成的集合,可以用於解決某一個特定的問題。

演算法必須滿足五個條件 輸入(input):可以由外界輸入0個、1個或多個以上的資料。 輸出(output):至少要有1個以上的輸出。 明確性(definiteness):每個步驟都必須是明確而不含糊的。 有限性(finiteness):必須在有限步驟內結束。 有效性(effectiveness):每一個步驟必須是基本的(可行的),也就是說,即使我們僅僅具有紙和筆也可以執行這些步驟。

搜尋 n 陣列大小 x要搜尋目標 j返回值 binsrch(int A[], int n, int x, int j) { lower = 1; upper = n; while (lower <= upper) mid = (lower + upper) / 2; if (x > A[mid]) lower = mid + 1; else if (x < A[mid]) upper = mid – 1; else { j = mid; return; } n 陣列大小 x要搜尋目標 j返回值 Binary search

Array n 陣列大小 void mul(int a[ ][ ], int b[ ][ ], int c[ ][ ], int n) { int i, j, k, sum; for (i=0; i < n; i++) for (j=0; j < n; j++) sum = 0; for (k=0; k < n; k++) sum = sum+a[i][k]*b[k][j]; c[i][j] = sum; } n 陣列大小 矩陣相乘

Recursive(1/2) int fact(int n) { int x, y; x = n-1; y = fact(x); return(n*y); } /* end fact */ 無窮回圈

Recursive(2/2) int fact(int n) { int x, y; if (n == 0) // boundary condition return(1); x = n-1; y = fact(x); return(n*y); } /* end fact */ N!

演算法衡量 影響程式執行時間的因素,最簡單的有 機器的速度 演算法的好壞 演算法(algorithm)是一解決問題的有限步驟之程序。 演算法的好壞,必須做複雜度的分析(complexity analysis)。 分析演算法的複雜度,必須先求出程式中每一敘述的 執行次數,並加總起來,然後求出其Big-O。