Microsoft PowerPoint - lecture15.pptx

Similar documents

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1



Wuqi 資訊 萬事通 1 交通資訊 告訴您如何來梧棲遊玩 火車 沙鹿火車站下車 至中山路搭乘巨業客運往清水 梧 棲班車 沙鹿車站 / 沙鹿區中正街 94 號 服務電話 ( 服務時間 06:00~24:00) 網站

( )... 5 ( ) ( )

本 刊 特 稿 CHILDREN STUDY 各 种 声 音 拟 音 词 的 使 用, 会 使 诗 歌 的 语 言 更 为 生 动 形 象, 音 调 悦 耳, 对 童 诗 自 然 非 常 合 适 将 大 自 然 的 声 音 用 拟 音 词 表 达, 并 且 呈 现 在 诗 中, 是 童 诗 之 所

Microsoft Word htm

撰 寫 人 :2B1 王 清 燕 書 名 : 追 風 箏 的 女 孩 條 碼 號 : 月 份 閱 讀 心 得 佳 作 我 覺 得 這 是 一 本 教 我 們 用 殘 酷 的 角 度 認 識 生 命 的 小 說 ; 與 同 儕 甚 是 摯 友 間 也 可 能 出 現 競 奪 下 的

重 點 書 摘 業 創 資?/ 啟 動 學 習 革 命 / 不 怕 失 敗, 就 不 必 擔 心 不 成 功 / 熙 鳳 姐, 看 戲 去 囉! 定 型 不 可 變 ; 又 因 為 醫 藥 的 發 達 使 人 的 壽 命 從 1950 年 代 的 平 均 49 歲 延 長 到 現 在 男 性 73

6寸PDF生成工具

如何提升學生的創造力? (陳惠芳)

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入


CU0594.pdf

理性真的普遍嗎 注意力的爭奪戰 科學發展 2012 年 12 月,480 期 13

Linked Lists

(Microsoft Word - 11-\261i\256m\253i.doc)

服務記錄撰寫技巧

Explain each of the following terms. (12%) (a) O(n 2 ) (b) protected in C++ language (c) sparse matrix 7. Write

77 Q84 30 Q Q84 Q Q84 48 Q84 Q ?? Q84?? ?????? 新 闻?

Microsoft Word - _m30.doc

untitled

Microsoft Word - ACL chapter02-5ed.docx

個 人 的 手, 拉 著 瞎 子 的 手 把 他 帶 往 村 外 的 時 候, 對 於 瞎 子 來 講, 那 個 人 的 手 和 耶 穌 的 手 有 沒 有 區 別? 沒 有! 為 什 麼 沒 有 區 別? 因 為 對 於 一 個 瞎 子 來 說, 手 和 耳 朵 就 是 他 接 觸 世 界, 瞭

PowerPoint 簡報


前言 人類的歷史, 因 一個簡單的思維 而改變! 1776 Thomas Paine COMMON SENSE

contents 系主任與系會長之大告白 1 臺東生科超棒棒之榮譽榜 2 中秋之剝柚子蘿蔔蹲大賽 5 迎新晚會之瘋狂自我介紹 7 實驗室介紹暨校友回娘家 9 生 魔變裝 資 塔 10 宿營之大雨滅不掉的熱情 13 家族趣味競賽與排球競賽 18 生科之第七屆學術發表會 21 交換禮物之歡樂聖誕晚會 2

73 二 課程簡介


輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

Microsoft Word htm

96年公務人員初等考試試題解答

男人的大腦 女人的大腦

Microsoft PowerPoint 李忠敬-替代役之展望

08. (A) (B) (C) (D) (94 ) 12-1 A 09. ( ) ( )

Microsoft Word - ok翁志文、張佳音...doc

Adobe Photoshop CS6 完美呈現 CHAPTER Black & White 黑白 如何製作出色的黑白影像 Camera Raw 的黑白轉換 三點速成黑白轉換 在 Photoshop 中

投影片 1

文档 3

第 五 章 限 制 與 潛 力 分 析 第 六 章 規 劃 構 想 第 一 節 發 展 定 位 第 二 節 規 劃 目 標


Chapter 3 Camera Raw Step negative clarity +25 ] P / Step 4 0 ( 下一頁 ) Camera Raw Chapter 3 089

( 表 1) 學 校 基 本 資 料 學 校 類 型 新 竹 市 東 區 新 竹 國 小 班 級 數 55 校 址 新 竹 市 興 學 街 106 號 電 話 傳 真 網 址

1-4 二 社會工作存在的前提 / 基本假設 Boehm

戒菸實務個案自助手冊105年Ver.2

Chapter 1 Introduction

Hella LED 前燈 日行燈 Hella

Microsoft PowerPoint - 971通-13生命科學(生物多樣性) ppt

Microsoft Word htm

<4D F736F F D20B3E6A4B830312D2D2DBCC6BD75BB50BEE3BCC6AABAA55BB4EEB942BAE22E646F6378>

投影片 1

邏輯分析儀的概念與原理-展示版

f2.eps


els0xu_zh_nf_v8.book Page Wednesday, June, 009 9:5 AM ELS-0/0C.8

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

Microsoft PowerPoint - 資料庫正規化(ccchen).ppt

p.2 1 <HTML> 2 3 <HEAD> 4 <TITLE> </TITLE> 5 </HEAD> 6 7 <BODY> 8 <H3><B> </B></H3> 9 <H4><I> </I></H4> 10 </BODY> </HTML> 1. HTML 1. 2.


Microsoft Word - 10¥~Äy°t°¸®a®xªA°È

Microsoft Word 期C班_ _.doc

1

附件9 电梯运行安全监测管理信息平台技术规范 第11部分:系统信息安全技术规范(征求意见稿)

Microsoft Word - template.doc

(Microsoft Word - \263\\\254f\244\252-\244p\275\327\244\345_\245v\246a\303\376_.doc)

Microsoft Word - OPIGIMAC 譯本.doc

目錄

ZW.s92

月光迴旋曲

行動研究



投影片 1

現在人類獲取地球內部訊息的方法, 是從可能影響我們身家性命安全的地震, 用數學模型把地震資料轉換成地震波速度, 進而獲得地底物質密度與深度的關係 地下世界知多少 km/s g/cm 3 P Gpa km S P S 3,000 3,000 ak K 透視地底 Percy Bridgma

ebook 165-5

國 立 台 南 二 中 104 學 年 度 第 二 學 期 第 一 次 期 中 考 高 三 國 文 科 解 答 壹 選 擇 題 1 B 2 B 3 C 4 A 5 A 6 C 7 B 8 C 9 B 10 D 11 A 12 D 13 A 14 B 15 B 16 D 17 A 18 AB 19 E

mark Tuesdays with Morrie Mitch Albom TEL(02) FAX(02)

Transcription:

紅黑樹 Michael Tsai 200/2/3 200 最後一堂資料結構課

2 Happy New Year 作業六 ( 最後一個作業, 耶 ) 上線 期末考前 due ( 跟助教會再討論 ) 期末考方式討論 (close book, 2 A4 雙面大抄 ) 範圍 : 全部 ( 第一堂課到最後一堂課 )

3 紅黑樹 可以幹嘛? 是棵平衡的樹 : 保證從 root 到某個 leaf 的 simple path 一定不會超過從 root 到任何一條其他這樣的 path 的兩倍長 大概平衡 operation 可以都在 O(log n) 內完成. 耶. 那些 operation?. 找 2. 插入某 element 3. 殺掉某 element 4. 找最大 or 找最小 element

4 紅黑樹 每個 node 都分配一個顏色 : 紅或黑 使用 extended binary tree: 沒有 children 的地方都補上 external node, 又叫 規則們 :. 每個 node 不是黑就是紅 2. root 是黑色的 3. 每個 leaf (external node, or ) 都是黑色 4. 如果一個 node 是紅的, 則它的 children 都是黑的 5. 對每個 node 來說, 從它到他的所有子孫葉子 node 的路徑上含有一樣數目的黑色 node

5 黑高度 Black height: bh(x) = 從 x 到任何一個它的子孫葉子 node 遇到的 black node 個數 ( 因為都一樣, 所以可以是任何一個 ) 不包含 node x 自己 external node 或 ( 葉子 node) 的 black height 為 0

巨大的紅黑樹例子 26 7 4 47 30 35 39 38 28 4 2 0 6 9 23 20 5 2 7 3 2 2 3 2 3 2 2 bh(x) 們 6

7 巨大的紅黑樹例子 3 bh(x) 們 7 3 26 4 2 2 0 2 4 2 2 6 9 23 28 2 30 38 47 7 2 5 20 35 39 3

8 來點證明 定理 : 一個有 n 個 node 的紅黑樹, 最高為 2 log(n+) 第一步驟 : 證明 node x 底下的 subtree 最少有 2 個 internal node 歸納法證明 :. 當 x 的 height 為 0, 則 x 是個葉子. bh(x)=0. 2 0. 的確 subtree 有 0 個 internal node. 2. 假設當 x 的 height 為正整數, 且是一個有兩個 children 的 internal node. 每個小孩的 black height 為 bh(x) or bh(x). ( 看該小孩是黑是紅 ) 假設小孩的 subtree 都至少有 2 個 internal node 3. 則 x 底下的 subtree 應該有 2 2 2 ( 成功了!)

9 來點證明 4. 如果一個 node 是紅的, 則它的 children 都是黑的 另外一種解釋 : 從任一 node 到 leaf, 至少一半以上的 node 是黑的 假設 h 是 tree 的高度, 則 node x 底下的 subtree 最少有 2 個 internal node 第二步驟 : root 底下至少有多少個 node? root 底下最少有 2 2 個 node. 假設 node 個數為 n, 則 2 2log. 耶.

0 以上證明 說明為什麼. 找 4. 找最大 or 找最小 element 等 operation 可以在 O(log n) 內完成 那麼 insert 和 delete 呢? 問題 : 插入或殺掉之後, 可能不滿足紅黑樹的條件

Representation parent color data left right

2 Rotate 等一下會用到的 y left rotate(t,x) x x right rotate(t,y) y

3 Insertion 首先, 用原本的 binary search tree 插入的方法 insert(z) 不同的地方 :. z 的兩個 children 都指到 node 2. z 為紅色 3. 我們最後要處理不符合紅黑樹規則的部分 怎麼處理?

4 會違反那些規則呢? 7 規則們 :. 每個 node 不是黑就是紅 2. root 是黑色的 3. 每個 leaf (external node, or ) 都是黑色 4. 如果一個 node 是紅的, 則它的 children 都是黑的 5. 對每個 node 來說, 從它到他的所有子孫葉子 node 的路徑上 含有一樣數目的黑色 node 5. 不會違反因為 z 是紅的, z 取代掉一個, 而 z 的兩個 children 都是 如果違反 2, 則 z 是 root, 整棵樹只有 z: 很容易處理 來看違反 4 的情形 : z s parent is also red

5 情形一 : 你的叔叔是紅的 你是你爸右邊的小孩 繼續看新 z 爸爸是不是紅的 parent(z): 你爸 A C D y: 叔叔 A C D B z: 你 B z: 你

6 情形一 : 你的叔叔是紅的 你是你爸左邊的小孩 parent(z): 你爸 C y: 叔叔 C A B D z: 你 A B D z: 你 注意看每一個步驟是否有保持紅黑樹第五個條件

7 情形二與三 : 你的叔叔是黑的 parent(z): 你爸 A C y: 叔叔 left rotate(a) parent(z): 你爸 B C y: 叔叔 B z: 你 z: 你 A right rotate(c) 你是你爸右邊的小孩 你是你爸左邊的小孩 B 注意看每一個步驟是否有保持紅黑樹第五個條件 z: 你 A C 需要繼續往上層看嗎? 不用! 因為 B 還是黑的!

8 黑板練習時間 3 7 3 26 4 2 2 0 2 4 2 2 6 9 23 28 2 30 38 47 7 2 5 20 35 39 3. 加入 40? 2. 加入 4?

9 要花多少時間呢? 原本正常的 binary tree insert 要花 O(log n) 的時間 因為高度最高為 2 log(n+) 那麼花費在調整的時間呢? 最糟的狀況? 情形一一直重複發生, 每次 z 往上移兩層 執行時間最糟要花跟高度成正比的時間 也是 O(log n) 那如果發生情形二 or 三呢? 執行一次即完成. O(). ( 所以比 O(log n) 小 ) 另外, 最多 rotate 只需要執行兩次. ( 不會再發生第二次情形二 or 三 )

如何刪掉一個 node? (binary search tree 複習 ) 首先要先找到那個 node 接著, 有各種不同情形 : 20 20 如果沒有手 (degree=0) 直接拿掉 0 5 2 22 25

如何刪掉一個 node? (binary search tree 複習 ) 如果只有一隻手 (degree=) 則把那個唯一的 child 拿上來接到 parent 上 20 2 例如 : 拿掉 22 2 22 0 5 25 問題 : 要怎麼接? 怎麼記得 parent 是誰?

如何刪掉一個 node? (binary search tree 複習 ) 如果兩手都有東西呢? (degree=2) 20 22 例如刪掉 2 找左邊 child 底下最大的 ( 或者是右邊 child 底下最小的 ) 0 5 2 22 25 刪掉它並把它移到原本刪掉的位置 問題 : 那如果那個最大的底下還有 child 呢? 直接拿上來 ( 最多只會有左邊一隻手 ) 這時被移上去的 node 顏色改變成新位置原本 node 的顏色

23 拿掉一個 node, 什麼時候會違反規則? 假設前述三種情形中, 移動 ( 兩手都有 ) 或是刪除 ( 一隻手或沒有手 ) 的 node 為 y 當 y 為紅色 ( 原本的顏色 ), 移動或刪除會造成違反規則嗎?. black height 不會改變, 因為 y 是紅色 node 2. 會不會造成兩個紅色 node 是相鄰的呢? ( 父子 ) A. 如果 y 是被刪掉的, 因為它是紅的, 所以它的上下層都是黑的 不會有問題 20 y 2 22 0 5

24 拿掉一個 node, 什麼時候會違反規則? B. 如果 y 是被移動的, 假設 y 有 children 也是黑色的, 不會造成問題 3. y 如果是紅色, 它不會是 root. 所以也不會有造成違反 root 是黑色的規定 綜合以上三點, 只有當 y 為黑色時才會造成問題, 需要調整 20 2 22 0 5 25

25 可能違反規則的情形 當 y 是黑色的, 可能造成違反規則的有下列情形 :. y 是 root. y 刪掉以後, 它的一個 children 是紅色的, 變成了 root 2. y 原本的上下兩層都是紅色的, 移走或刪除以後變成兩個紅色相鄰 3. y 刪掉或移走以後, 造成 black height 不一致 ( 因為 y 是黑的 )

26 怎麼修正紅黑樹以符合規則呢? 假設 x 為移動到 y 位置的 node ( 如果忘記了的話, y 是被刪掉或被移動的 node) y 原本是黑的, 則 x 好像要 有兩個黑, 這樣 black height 才會正確 每次 x 都指到一個 兩個黑 的 node ( 或者也有可能是 紅與黑 ) 依序修正

27 情形一 : x 的弟弟是紅的 B change color of B and D and left rotate(b) D A x D w B E C E x A new w C 轉換成情形二 三 或四

28 情形二 : x 的弟弟是黑的 & 它的姪子們都是黑的 B new x B A x D w A D C E C E

29 情形三 :x 的弟弟是黑的 它的姪子們都是左紅右黑 變成 case 4 B C 和 D 顏色改變 right rotate(d) B A x D w A x C new w C E D E

30 情形四 : x 的弟弟是黑的 它的姪子右邊那一個是紅的 B B,D,E 顏色改變 left rotate(b) D A x D w B E C E A C new x=root

3 花費的時間 O(log n) 最糟的情形是情形二 每次往上移一層 最糟 O(log n) 其他情形都是 O()

32 Happy New Year 老師的叮嚀 不要爆肝 不要不睡覺 身體最重要 心情快樂最重要 明年再見 ~~~