第一章 演算法:效率、分析與量級 1.1演算法 1.2發展有效率演算法的重要性 1.3演算法的分析 1.4量級(Order)

Slides:



Advertisements
Similar presentations
Divide-and-Conquer. 什麼是 divide-and-conquer ? Divide 就是把問題分割 Conquer 則是把答案結合起來.
Advertisements

McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Chapter 10 馬可夫鏈 緒言 如果讀者仔細觀察日常生活中所發生的 諸多事件,必然會發現有些事件的未來 發展或演變與該事件現階段的狀況全然 無關,這種事件稱為獨立試行過程 (process of independent trials) ;而另一些 事件則會受到該事件現階段的狀況影響。
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
: A-Sequence 星級 : ★★☆☆☆ 題組: Online-judge.uva.es PROBLEM SET Volume CIX 題號: Problem D : A-Sequence 解題者:薛祖淵 解題日期: 2006 年 2 月 21 日 題意:一開始先輸入一個.
:Word Morphing ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10508:word morphing 解題者:楊家豪 解題日期: 2006 年 5 月 21 日 題意: 第一行給你兩個正整數, 第一個代表下面會出現幾個字串,
Section 1.2 Describing Distributions with Numbers 用數字描述分配.
指導教授:陳淑媛 學生:李宗叡 李卿輔.  利用下列三種方法 (Edge Detection 、 Local Binary Pattern 、 Structured Local Edge Pattern) 來判斷是否為場景變換,以方便使用者來 找出所要的片段。
1.1 線性方程式系統簡介 1.2 高斯消去法與高斯-喬登消去法 1.3 線性方程式系統的應用(-Skip-)
亂數產生器安全性評估 之統計測試 SEC HW7 姓名:翁玉芬 學號:
Lecture 8 Median and Order Statistics. Median and Order Statistics2 Order Statistics 問題敘述 在 n 個元素中,找出其中第 i 小的元素。 i = 1 ,即為找最小值。 i = n ,即為找最大值。 i = 或 ,即為找中位數。
Review of Chapter 3 - 已學過的 rules( 回顧 )- 朝陽科技大學 資訊管理系 李麗華 教授.
:New Land ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11871: New Land 解題者:施博修 解題日期: 2011 年 6 月 8 日 題意:國王有一個懶兒子,為了勞動兒子,他想了一個 辦法,令他在某天早上開始走路,直到太陽下山前,靠.
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
Chapter 2 聯立線性方程式與矩陣 緒言 線性方程式組 (systems of linear equations) 出現 在多數線性模式 (linear model) 中。根據以往解 題的經驗,讀者們也許已發現方程式的解僅與 該方程式的係數有關,求解的過程也僅與係數 的運算有關,只要係數間的相關位置不改變,
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
5.1 Rn上之長度與點積 5.2 內積空間 5.3 單範正交基底:Gram-Schmidt過程 5.4 數學模型與最小平方分析
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
MATLAB 程式設計 第 11 章 多維陣列 多維陣列的定義 在 MATLAB 的資料型態中,向量可視為 一維陣列,矩陣可視二維陣列,對於維 度 (Dimensions) 超過 1 的陣列則均可視 為「多維陣列」 (Multidimesional Arrays , 簡稱 N-D Arrays)
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
基礎物理總論 基礎物理總論 熱力學與統計力學(三) Statistical Mechanics 東海大學物理系 施奇廷.
Department of Air-conditioning and Refrigeration Engineering/ National Taipei University of Technology 模糊控制設計使用 MATLAB 李達生.
Monte Carlo Simulation Part.2 Metropolis Algorithm Dept. Phys. Tunghai Univ. Numerical Methods C. T. Shih.
2009fallStat_samplec.i.1 Chap10 Sampling distribution (review) 樣本必須是隨機樣本 (random sample) ,才能代表母體 Sample mean 是一隨機變數,隨著每一次抽出來的 樣本值不同,它的值也不同,但會有規律性 為了要知道估計的精確性,必需要知道樣本平均數.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
:Problem D: Bit-wise Sequence ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10232: Problem D: Bit-wise Sequence 解題者:李濟宇 解題日期: 2006 年 4 月 16.
: The largest Clique ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11324: The largest Clique 解題者:李重儀 解題日期: 2008 年 11 月 24 日 題意: 簡單來說,給你一個 directed.
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
3.1 矩陣的行列式 3.2 使用基本運算求行列式 3.3 行列式的性質 3.4 特徵值介紹 3.5 行列式的應用
Chapter 2 Getting Started Insertion Sort: 能有效率地排序小數字的演算法 範例 :
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
資料結構實習-一 參數傳遞.
Lecture 7 Sorting in Linear Time. Sorting in Linear Time2 7.1 Lower bounds for sorting 本節探討排序所耗用的時間複雜度下限。 任何一個以比較為基礎排序的演算法,排序 n 個元 素時至少耗用 Ω(nlogn) 次比較。
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
觀測量的權 權的觀念與計算.
: Problem G e-Coins ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10306: Problem G e-Coins 解題者:陳瀅文 解題日期: 2006 年 5 月 2 日 題意:給定一個正整數 S (0
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
: Expect the Expected ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11427: Expect the Expected 解題者:李重儀 解題日期: 2008 年 9 月 21 日 題意:玩一種遊戲 (a game.
-Antidifferentiation- Chapter 6 朝陽科技大學 資訊管理系 李麗華 教授.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Chapter 2. Recurrence Relations (遞迴關係)
Learning Method in Multilingual Speech Recognition Author : Hui Lin, Li Deng, Jasha Droppo Professor: 陳嘉平 Reporter: 許峰閤.
Chapter 10 m-way 搜尋樹與B-Tree
演算法課程 (Algorithms) 國立聯合大學 資訊管理學系 陳士杰老師 Course 7 貪婪法則 Greedy Approach.
Probability Distribution 機率分配 汪群超 12/12. 目的:產生具均等分配的數值 (Data) ,並以 『直方圖』的功能計算出數值在不同範圍內出現 的頻率,及繪製數值的分配圖,以反應出該 機率分配的特性。
: Help My Brother ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11033: Help My Brother 解題者: 呂明璁 解題日期: 2007 年 5 月 14 日.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
2005/7 Linear system-1 The Linear Equation System and Eliminations.
Cluster Analysis 目的 – 將資料分成幾個相異性最大的群組 基本問題 – 如何衡量事務之間的相似性 – 如何將相似的資料歸入同一群組 – 如何解釋群組的特性.
第 6 章 迴圈結構 6-1 計數迴圈 6-1 計數迴圈 6-2 條件迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-3 巢狀迴圈 6-4 While/End While 迴圈 6-4 While/End While 迴圈 6-5 跳出迴圈 6-5 跳出迴圈 6-6 VB.NET 的錯誤處理 6-6 VB.NET.
連續隨機變數 連續變數:時間、分數、重量、……
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/30 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH7.1~CH /12/26.
: Wine trading in Gergovia ★★☆☆☆ 題組: Contest Volumes with Online Judge 題號: 11054: Wine trading in Gergovia 解題者:劉洙愷 解題日期: 2008 年 2 月 29 日 題意:在 Gergovia.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim.
幼兒行為觀察與記錄 第八章 事件取樣法.
CH 14-可靠度工程之數學基礎 探討重點 失效時間之機率分配 指數模式之可靠度工程.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
: How many 0's? ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11038: How many 0’s? 解題者:楊鵬宇 解題日期: 2007 年 5 月 15 日 題意:寫下題目給的 m 與 n(m
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
第七章 計算複雜度概論:排序問題 7.1計算複雜度 7.2插入排序與選擇排序 7.3每次比較至多移除一個導致之演算法的下限
Presentation transcript:

第一章 演算法:效率、分析與量級 1.1演算法 1.2發展有效率演算法的重要性 1.3演算法的分析 1.4量級(Order) 第一章 演算法:效率、分析與量級 1.1演算法 1.2發展有效率演算法的重要性 1.2.1循序搜尋法與二元搜尋法 1.2.2費布那西數列(Fibonacci Sequence) 1.3演算法的分析 1.3.1複雜度分析 1.3.2演算法分析原理的應用 1.3.3正確性分析 1.4量級(Order) 1.4.1以直覺的方式介紹量級的概念 1.4.2以嚴謹的方式介紹量級的概念 1.4.3使用極限計算量級

第一章 演算法:效率、分析與量級 當我們使用某種技巧解決一個問題的時候,會產生一種逐步執行的程式來解決問題。該種逐步執行的程式及稱為解決這個問題的演算法。

1.1 演算法 串列代表的是一個由某些項目以特定的順序構成的即集合。 EX: S=[10, 7, 11, 5, 13, 8]

演算法1.1 循序搜尋法(Sequential Search)

演算法1.2 加總陣列中的項目

演算法1.3 交換排序法(Exchange Sort)

演算法1.4 矩陣乘法

1.2 發展有效率演算法 的重要性 1.2.1循序搜尋法與 二元搜尋法

演算法1.5 二元搜尋法(Binary Search)

1.2.2費布那西數列

演算法1.6 費布那西數列的第N項(遞迴版)

定理1.1 若T(n)代表演算法1.6相對應的遞迴樹含有的項目數。則對於 證明:我們利用在n上執行歸納法來證明 歸納基底:我們需要兩個基礎的例子,因為歸納步驟中需要用到前兩個系子的結果。

對於n=2及n=3,圖1.2中的遞迴樹顯示 歸納假設:產生歸納假設的其中一個方式是,假設對於所有的m<n,這個敘述都成立。接著,在歸納步驟中,證明就n而言,此表示同樣的敘述也必須是成立的。我們在這個證明中將使用這個方式。假設對於所有的m,且

歸納步驟:我們必須證明 。 T(n)的值等於T(n-1)與T(n-2)的總和加上一個根節點,因此 (根據歸納假設)

演算法1.7 費布那西數列的第n項(iterative版)

演算法1.6&1.7的比較

1.3演算法的分析 1.3.1複雜度分析

基本運算 在求得輸入大小後,我們挑選某些指令或指令群阻使得演算法作的工作總和約略與這些指令或指令群組被執行的次數成正比。我們稱這些指令或指令循組為該演算法中的基本運算。

時間複雜度分析 對一個演算法進行時間複雜度分析就是求得每個不同的輸入大小,該演算法所執行的基本運算次數。

分析演算法1.2 所有情況的時間複雜度(加總陣列中的項目) 除控制指令外,在迴圈中唯一的指令就是把陣列中的一個項目加總到sum這個變數中。因此,我們稱這個指令為此演算法的基本運算。 基本運算:將陣列中的一個項目加總到 sum這個變數中。 輸入大小:n、陣列中的項目個數。 無論陣列中所含的數值是什麼,for迴圈 會執行n次。因此,基本運算總是被執行n次,故可得 T(n)=n

分析演算法1.3 所有情況的時間複雜度(交換排序法) 分析演算法1.3 所有情況的時間複雜度(交換排序法) 如同先前所提及,對於利用key的比較來進行排序的演算法,我們可以把比較指令或是指定值指令當作是基本運算來看。我們將在這裡分析比較的次數。 基本運算:比較S[ j ]與S[i] 輸入大小:n,被排序的項目個數

我們必須求得for-j迴圈執行的次數。給定n,for-i迴圈執行的次數恆為n-1。在for-i迴圈第一次執行過後,for-j迴圈執行n-1次;在for-i迴圈第二次執行過後, for-j迴圈執行n-2次:在for-i迴圈第三次執行過後, for-j迴圈執行n-3次,……,在for-i迴圈最後一次執行過後, for-j迴圈執行1次。因此, for-j迴圈總共執行的次數可由下式求得

分析演算法1.4 所有情況的時間複雜度(矩陣乘法) 分析演算法1.4 所有情況的時間複雜度(矩陣乘法) 在最內層的for迴圈中只有一個由一個乘法與一個加法組成的指令。這個演算法可以被實作成執行的加法個數遠少於執行的乘法個數。因此,我們將只設定乘法指令為基本運算。 基本運算:在最內層的for迴圈中的乘法指令 輸入大小:n,行數與列數 for-i迴圈的執行次數恆為n。 for-i迴圈每執行一次, for-j迴圈就執行n次; for-j迴圈每執行一次, for-k迴圈就執行n次。因為基本運算在for-k迴圈的內部,因此

最差情況時間複雜度 對於一個給定的演算法,W(n)被定義為在輸入大小為n的情況下,該演算法執行基本運算次數的最大值。因此W(n)被稱為該演算法的最差情況時間複雜度,而其求得過程稱為最差情況時間複雜度分析。

分析演算法1.1 最差情況的時間複雜度(循序搜尋法) 分析演算法1.1 最差情況的時間複雜度(循序搜尋法) 基本運算:將x與陣中的一個項目進行比較 輸入大小 :n,陣列中的項目個數 基本運算最多執行n次,也就是當x位於陣列的尾端或x不在陣列中時。因此 W(n)=n

平均情況時間複雜度分析 對於一個給定的演算法,A(n)被定義為在輸入大小為n的情況下,該演算法執行基本運算次數的平均值。因此A(n)被稱為該演算法的平均情況時間複雜度,而其求得過程即稱為平均情況時間複雜度分析。

分析演算法1.1 平均情況的時間複雜度(循序搜尋法) 分析演算法1.1 平均情況的時間複雜度(循序搜尋法) 基本運算:將x與陣列中的一個項目進行比較 輸入大小:n,陣列中的項目個數 我們首先分析已知x在S中的情況,所有在S中的項目都是相異的,因此沒有理由認為x出現在某個位置的機率大於出現在另一個位置的機率。根據這個資訊,對於 ,x位於第k個位置的機率為1/n。若x位於第k個位置,找到x所需執行的基本運算次數為k。這代表的是平均時間複雜度可以由下式得到

接下來我們分析x可能不在陣列中的情況。若要分析這個情況,我們必須指定x位於從1到n的每個位置之機率都是相同的。X位於第k個位置的機率為p/n,x不在陣列中的機率為1-p。若x在第k個位置被找到,迴圈就跑了k次,若x沒有在陣列中被找到,則迴圈則跑了n次,因此

最佳情況時間複雜度 對於一個給定的演算法,B(n)被定義為在輸入大小為n的情況下,該演算法執行基本運算次數的最小值。因此B(n)被定義為在輸入大小為n的情況下,該演算法執行基本運算次數的最小值。又B(n)被稱作該演算法的最佳情況時間複雜度,其求得的過程稱為最佳情況時間複雜度分析。

分析演算法1.1 最佳情況的時間複雜度(循序搜尋法) 分析演算法1.1 最佳情況的時間複雜度(循序搜尋法) 基本運算:把x與陣列中的一個項目進行比較 輸入大小:n,陣列中的項目個數 因為 ,因此迴圈至少會走一次,如果x=S[1],那麼無論n的大小為何,迴圈都是只走一次。因此 B(n)=1

記憶體複雜度分析 (memory complexity) 求得一演算法以使用記憶體為單位來計算,其效率為何

複雜度函數(complexity function) 是任一個將正整數映射到非負實數的函數

1.3.2演算法分析原理的應用 1.3.3正確性分析

1.4量級(order) 線性時間演算法 (linear-time algorithm) 平方時間演算法 (quadratic-time algorithm)

1.4.1以直覺的方式介紹量級的概念 純平方函數(pure quadratic function) EX: 完全平方函數(complete quadratic function)

常見的複雜度類別

表1.3 二次項最終會主控整個函數的值

1.4.2 以嚴謹的方式 介紹量級的概念

big O

量級的性質

1.4.3使用極限計算量級