Chapter 10 m-way 搜尋樹與B-Tree

Slides:



Advertisements
Similar presentations
FCU, Department of ECE, IC Design Research Lab. TEL: # 4945 Pre-SIm , Post-Sim.
Advertisements

布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
學習C++的基本語法 認識關鍵字與識別字的不同 學習程式碼偵錯的流程 學習如何提高程式的可讀性
資料的搜尋 搜尋的基本概念 循序搜尋法(Sequential Search) 二元搜尋法(Binary Search)
: A-Sequence 星級 : ★★☆☆☆ 題組: Online-judge.uva.es PROBLEM SET Volume CIX 題號: Problem D : A-Sequence 解題者:薛祖淵 解題日期: 2006 年 2 月 21 日 題意:一開始先輸入一個.
Section 1.2 Describing Distributions with Numbers 用數字描述分配.
Instructor: Ching-Chi Lin 林清池 助理教授
3Com Switch 4500 切VLAN教學.
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章.
1.1 線性方程式系統簡介 1.2 高斯消去法與高斯-喬登消去法 1.3 線性方程式系統的應用(-Skip-)
: Factstone Benchmark ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: : Factstone Benchmark 解題者:鐘緯駿 解題日期: 2006 年 06 月 06 日 題意: 假設 1960.
Graph V(G 1 )={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} E(G 1 )={(0, 2), (0, 3), (1, 4), (2, 3), (2, 5), (2, 6), (3, 6), (3, 7), (4, 7), (5, 6), (5,
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
: ShellSort ★★☆☆☆ 題組: Problem D 題號: 10152: ShellSort 解題者:林一帆 解題日期: 2006 年 4 月 10 日 題意:烏龜王國的烏龜總是一隻一隻疊在一起。唯一改變烏龜位置 的方法為:一隻烏龜爬出他原來的位置,然後往上爬到最上方。給 你一堆烏龜原來排列的順序,以及我們想要的烏龜的排列順序,你.
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
JAVA 程式設計與資料結構 第十四章 Linked List. Introduction Linked List 的結構就是將物件排成一列, 有點像是 Array ,但是我們卻無法直接經 由 index 得到其中的物件 在 Linked List 中,每一個點我們稱之為 node ,第一個 node.
MATLAB 程式設計 第 11 章 多維陣列 多維陣列的定義 在 MATLAB 的資料型態中,向量可視為 一維陣列,矩陣可視二維陣列,對於維 度 (Dimensions) 超過 1 的陣列則均可視 為「多維陣列」 (Multidimesional Arrays , 簡稱 N-D Arrays)
第 18 章 名稱空間與例外處理 18-1 名稱空間 18-1 名稱空間 18-2 例外處理 18-2 例外處理.
8.1 何謂高度平衡二元搜尋樹 8.2 高度平衡二元搜尋樹的加入 8.3 高度平衡二元搜尋樹的刪除
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
: The Playboy Chimp ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10611: The Playboy Chimp 解題者:蔡昇宇 解題日期: 2010 年 2 月 28 日 題意:給一已排序的數列 S( 升冪.
第一章 演算法:效率、分析與量級 1.1演算法 1.2發展有效率演算法的重要性 1.3演算法的分析 1.4量級(Order)
2009fallStat_samplec.i.1 Chap10 Sampling distribution (review) 樣本必須是隨機樣本 (random sample) ,才能代表母體 Sample mean 是一隨機變數,隨著每一次抽出來的 樣本值不同,它的值也不同,但會有規律性 為了要知道估計的精確性,必需要知道樣本平均數.
1 第四章 多變數函數的微分學 § 4.1 偏導數定義 定義 極限值 ■. 2 定理 極限值的基本定理 (1) 極限值的唯一性 : 若 存在,則 其值必為唯一。 (2) 若 且 ( 與 為常數 ) , 則 且 為常數且.
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.
24-6 設定開始與結束場景中的 程式 最後我們要替這個遊戲收個尾, 幫它把開始 的等待畫面跟結束畫面處理一下。
: The largest Clique ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11324: The largest Clique 解題者:李重儀 解題日期: 2008 年 11 月 24 日 題意: 簡單來說,給你一個 directed.
3-3 使用幾何繪圖工具 Flash 的幾何繪圖工具包括線段工具 (Line Tool) 、橢圓形工具 (Oval Tool) 、多邊星形 工具 (Rectangle Tool) 3 種。這些工具畫出 來的幾何圖形包括了筆畫線條和填色區域, 將它們適當地組合加上有技巧地變形與配 色, 不但比鉛筆工具簡單,
Chapter 20 塑模動態觀點:狀態圖 Statechart Diagram. 學習目標  說明狀態圖的目的  定義狀態圖的基本記號  展示狀態圖的建構  定義活動、內部事件及遞延事件的狀態 圖記號.
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
 黃三益 2007 資料庫的核心理論與實務第三版 9-1 第九章 資料儲存結構  資料庫裡資料的儲存特性 資料庫裡資料的儲存特性  資料表的資料結構 資料表的資料結構  B + -tree 的索引結構  二元樹 二元樹  B+-tree 的索引結構 B+-tree 的索引結構  B +
: Playing War ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11061: Playing War 解題者:陳盈村 解題日期: 2008 年 3 月 14 日 題意:在此遊戲中,有一類玩家一旦開始攻擊, 就會不停攻擊同一對手,直到全滅對方或無法再.
: Problem A : MiniMice ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11411: Problem A : MiniMice 解題者:李重儀 解題日期: 2008 年 9 月 3 日 題意:簡單的說,題目中每一隻老鼠有一個編號.
第十章 再論結構. 指標與結構的關係 /* File name: ex10-1a.c */ #include int main() { struct student { char *name; int score; }; struct student st= {"Brian", 97}; struct.
: 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.
4 堆疊與佇列 4.1 前言 四種基本的資料結構 (可儲存資料的容器) 陣列 (Array)、串列(List): 最基本
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
: Lucky Number ★★★★☆ 題組: Proble Set Archive with Online Judge 題號: 10909: Lucky Number 解題者:李育賢 解題日期: 2008 年 4 月 25 日 題意:給一個奇數數列 1,3,5,7,9,11,13,15…
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
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.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Learning Method in Multilingual Speech Recognition Author : Hui Lin, Li Deng, Jasha Droppo Professor: 陳嘉平 Reporter: 許峰閤.
第12章 多重表單與模組的應用程式 12-1 VB.NET的方案與專案 12-2 模組化VB.NET應用程式 12-3 多重表單的應用程式
演算法課程 (Algorithms) 國立聯合大學 資訊管理學系 陳士杰老師 Course 7 貪婪法則 Greedy Approach.
JAVA 程式設計與資料結構 第十六章 Hash Tables. Introduction Hash Tables 結構為一個 Array ,稱之為 Bucket array 。 如果想要新增一個物件,要根據這個物件的特性 將其加入 Hash Table 內。 Bucket Array 用 A 來代替,其.
本章重點 2-1 有序串列(Ordered List) 2-2 介紹陣列(array) 2-3 矩陣(matrix)的應用
Probability Distribution 機率分配 汪群超 12/12. 目的:產生具均等分配的數值 (Data) ,並以 『直方圖』的功能計算出數值在不同範圍內出現 的頻率,及繪製數值的分配圖,以反應出該 機率分配的特性。
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
: Problem E Antimatter Ray Clearcutting ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11008: Problem E Antimatter Ray Clearcutting 解題者:林王智瑞.
連續隨機變數 連續變數:時間、分數、重量、……
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2008.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
: 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.
幼兒行為觀察與記錄 第八章 事件取樣法.
: 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. 肆 資料分析與表達.
Presentation transcript:

Chapter 10 m-way 搜尋樹與B-Tree

10.1 m-way 搜尋樹 何謂m-way 搜尋樹 (m-way search tree)? 首先,一棵m-way 搜尋樹,所有節點的分支度均小於或等於m。若T 為空樹,則T 亦稱為m-way 搜尋樹,倘若T 不是空樹,則必需具備下列性質: 1. 節點的資料型態是n, A0, (K1, A1), (K2, A2), …, (Kn, An),其中Ai 是子樹的指標, 0 ≤ i ≤ n < m;Ki 是鍵值,1 ≤ i ≤ n < m。 2. 節點中的鍵值是由小至大排列的,因此,Ki < Ki+1,1 ≤ i < n。 3. 子樹Ai 的所有鍵值均小於鍵值Ki+1,且大於Ki ,0 < i < n。 4. 子樹An 的所有鍵值均大於Kn,A0 的所有鍵值均小於K1。 5. Ai 指到的子樹,0 ≤ i ≤ n 亦是m-way 搜尋樹。

10.1 m-way 搜尋樹 例如有一棵3-way 的搜尋樹含有12 個鍵值,分別為12, 17, 23, 25, 28, 32, 45, 48, 55, 60,70

10.1 m-way 搜尋樹 下圖為上圖中每個節點之 3-way搜尋表示法 節點 格式 由於3-way搜尋樹,每個節點的型態是 n, A0, (K1, A1), (K2, A2),…,(Kn, An),因此 a 節點的格式為 2, b, (23, c), (48, d) 節點 格式 a b c d e f g 2, b, (23, c),(48, d) 2, 0, (12, 0), (17, 0) 2, e, (28, 0), (32, f) 2, 0, (55, 0), (60, g) 1, 0, (25, 0) 2, 0, (38, 0), (45, 0) 1, 0, (70, 0)

10.1 m-way 搜尋樹 10.1.1 m-way 搜尋樹的加入 以 3-way 搜尋樹為例,依序將 5,7,12,6,8,4,3,10加入到搜尋樹,其中 x 表示目前無鍵值存在 (1) 加入5 (2) 加入7 (3) 加入12 5 , x 5 , 7 5 , 7 12 , x

10.1 m-way 搜尋樹 (4) 加入6 (5) 加入8 (6) 加入4 5 , 7 6 , x 12 , x 5 , 7 6 , x 8 , 12 5 , 7 4, x 6 , x 8 , 12

10.1 m-way 搜尋樹 (7) 加入3 (8) 加入10 5 , 7 3,4 6 , x 8 , 12 5 , 7 3,4 6 , x 8 , 12 10 , X

10.1 m-way 搜尋樹 10.1.2 m-way 搜尋樹的刪除 刪除方法與二元搜尋樹相同 樹葉節點:直接刪除 非樹葉節點:以左子樹中最大鍵值或右子樹中最小鍵值取代之

10.1 m-way 搜尋樹 假設有一棵3-way搜尋樹如下: 5 , 7 3,4 6 , x 8 , 12 10 , X

10.1 m-way 搜尋樹 刪除 3,則直接刪除 刪除 8 5 , 7 4,X 6 , x 8 , 12 10 , X 5 , 7 4,X 10, 12

10.1 m-way 搜尋樹 刪除 12 刪除 7 刪除 10 5 , 7 4,X 6 , x 10, X 5 , 10 4,X 6 , x 5 , 6 4,X

10.2 B-tree 何謂 B-tree? 一棵order為m的 B-tree是一個m-way搜尋樹 可以是空樹 假若高度≧1必需滿足以下的特性: 樹根至少有二個子節點,亦即節點內至少有一鍵值 除了樹根外,所有非失敗節點(即內部節點)至少有 m/2 個子節點,至多有m個子節點。此表示至少應有 m/2 -1個鍵值,至多有m–1個鍵值( m/2 表示大於m/2的最小正整數) 所有的樹葉節點皆在同一階層

10.2 B-tree 左圖不屬於B-tree of order 3,主要是因為樹葉節點不在同一階層上 。

10.2 B-tree B-tree of order 3表示除了樹葉節點外每一節點的分支度(degree)不是等於2就是等於3,因此B-tree of order 3就是著名的2-3 tree。假使m=4,則是2-3-4 tree。

10.2 B-tree 10.2.1 B-Tree 的加入 從 B-tree 中開始搜尋,假使加入的鍵值 X 在 B-tree 中找不到,則加入 B-tree 中。假設加入到 P 節點,若 該節點少於 m-1 個鍵值,則直接加入 該節點的鍵值已等於 m-1,則將此節點分為二,因為一棵order為m的B-tree,最多只能有m-1個鍵值。

10.2 B-tree 假設有一棵B-Tree of order 5

10.2 B-tree 加入88。此鍵值將加在j 節點上,由於j 節點的鍵值少於m–1 個 (即4 個,因為它是一棵B-Tree of order 5),故直接將此鍵值加入即可。

10.2 B-tree 加入98

10.2 B-tree 加入91

10.2 B-tree 加入93

10.2 B-tree 加入99

10.2 B-tree 10.2.2 B-Tree 的刪除 B-Tree 的刪除有二種情況:一為刪除的節點是樹葉節點,二為刪除的節點為非樹葉節點。我們以一棵如圖10-4 的B-Tree of order 5 來說明。

10.2 B-tree 若p 節點是樹葉節點: 刪除p 節點的鍵值X 後,若p 節點的鍵值個數還大於或等於m / 2–1 個(2 個,此處的m 為5),則直接刪除之。

10.2 B-tree 刪除p 節點的鍵值X 後,若p 節點的鍵值小於m / 2–1 個(2 個),此時因為不符合B-Tree 的定義,所以必需加以調整之。

10.2 B-tree

10.2 B-tree

10.2 B-tree

10.2 B-tree

10.2 B-tree

10.2 B-tree

10.2 B-tree

10.2 B-tree