CẤU TRÚC DỮ LIỆU NÂNG CAO

Similar documents
TÀI LIỆU THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Tài liệu hướng dẫn: Stored Procedure

Internet Protocol. Bởi: Phạm Nguyễn Bảo Nguyên

Khoa KH & KTMT Bộ môn Kỹ Thuật Máy Tính

STACK và QUEUE. Lấy STACK

HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM DIỆT VIRUS AVIRA

Bộ môn MMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Nội dung chính của chương. Các công nghệ đĩa cứng Cấu tạo vật lý của đĩa cứng Cấu tạo logic của đĩa cứng Cài đặt đĩa cứng như thế nào?

Chương 5. Network Layer 19/09/2016 1

Chương 5. Network Layer. Phần 1 - Địa chỉ IPv4. Tài liệu : Forouzan, Data Communication and Networking

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG CẬP NHẬT CHỨNG THƯ SỐ HOTLINE:

Lecture 12. Trees (1/2) Nội dung bài học:

Tình huống 1: PPPoE với Username và Password

HƯỚNG DẪN SỬ DỤNG PLESK PANEL

Giáo trình này được biên dịch theo sách hướng dẫn của Sun Light. Vì là hướng dẫn kỹ thuật, trong này những thuật ngữ kỹ thuật bằng tiếng Anh tôi chỉ

Cụ thể những công việc mà AndroidManifest.xml thực hiện: - Đặt tên cho Java package của ứng dụng.

Tạo Project với MPLAB

Chương 7. Application Layer. Tài liệu : Forouzan, Data Communication and Networking

Chương 6. Transport Layer. Tài liệu : Forouzan, Data Communication and Networking

GIẢI THUẬT ĐỊNH TUYẾN (ROUTING ALGORITHM)

HƯỚNG DẪN CÁCH SỬ DỤNG WINDOWS MOVIE MAKER

Cài đặt và cấu hình StarWind iscsi trên Windows. iscsi SAN là gì?

CHƯƠNG 2: CÁC ĐẶC ĐIỂM VỀ MÔI TRƯỜNG PHÁT TRIỂN (IDE)

Phần 2. SỬ DỤNG POWERPOINT ĐỂ CHUẨN BỊ NỘI DUNG TRÌNH BÀY

Bài 10: Cấu trúc dữ liệu

Khoa Công Nghệ Thông Tin Trường Đại Học Cần Thơ. Những hỗ trợ tiên tiến khác của SQL. Đỗ Thanh Nghị

Hướng dẫn cài đặt FPT

BÀI TẬP THỰC HÀNH LẬP TRÌNH WINDOWS C#

GV: Phạm Đình Sắc or

LÂ P TRI NH WEB ASP.NET

Bài Thực hành Asp.Net - Buổi 1 - Trang: 1

Bài tập lớn số 1. Giả lập bộ định thời

BÀI GIẢNG CHƯƠNG 3 GIAO TIẾP KẾT NỐI SỐ LIỆU

Kỹ thuật thu nhỏ đối tượng trong Design (Layout)

HƯỚNG DẪN SỬ DỤNG ĐẦU GHI H.264 DVR VISION VS (4CH - 8CH - 16CH)

TỔNG QUAN VỀ.NET VÀ C#

Ôn tập Thiết bị mạng và truyền thông DH07TT - Lưu hành nội bộ (không sao chép dưới mọi hình thức)

SIMULATE AND CONTROL ROBOT

BÀI 1: VBA LÀ GÌ? TẠO MACRO, ỨNG DỤNG CÁC HÀM TỰ TẠO (UDF), CÀI ĐẶT ADD-INS VBA là gì?

Mô hình dữ liệu quan hệ (Relational data model)

B5: Time to coding. Tới thư mục src/example.java và thay đổi nội dung file như sau: Mã: package at.exam;

MỤC LỤC. Giáo trình Thiết kế web Trang 1

LẬP TRÌNH WINDOWS FORM VỚI CÁC CONTROL NÂNG CAO (Các control trình bày dữ liệu dưới dạng danh sách)

Lab01: M V C Lưu ý: Để thực hành, các bạn phải cài Visual Studio 2013 trở lên mới hỗ trợ MVC5.

BẢO MẬT TRONG SQL SERVER

BÀI 6 LÀM VIỆC VỚI THÀNH PHẦN MỞ RỘNG CỦA CSS3

Entity Framework (EF)

SIEMENS INDUSTRIAL NETWORKS

HƢỚNG DẪN TRIỂN KHAI KASPERSKY - MOBILE DEVICE MANAGEMENT

LẬP TRÌNH 8051 SỐ HỌC VÀ LÔ GIC

PHÁT TRIỂN ỨNG DỤNG WEB

Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MINICHAT. Bài giảng 3. Trang1. Khoa Khoa Học Và Kỹ Thuật Máy Tính

Tạo repository mới. The working tree. The staging index. Lệnh git init tạo một repository loại git. tại thư mục hiện tại: $ git init

Môn Học: Cơ Sở Dữ Liệu 2. Chương 3 LẤY DỮ LIỆU TỪ NHIỀU NGUỒN

ĐỌC, GHI XML VỚI C# TRONG ADO.NET --- SỬ DỤNG VISUAL STUDIO

Mạng máy tính - Computer Network: Hệ. Giao thức - Protocol:

HỢP ĐỒNG MUA BÁN HÀNG HÓA QUỐC TẾ GV: NGUYỄN THỊ BÍCH PHƯỢNG

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG HOSTING PLESK PANEL

Nhấn nút New để tạo 1 biến mới Trang 17

KIẾN TRÚC MÁY TÍNH. Giảng viên: ThS. Phan Thanh Toàn. v

NHẬP MÔN LẬP TRÌNH KHOA HỌC DỮ LIỆU. Bài 10: Thư viện Pandas (2)

1 Bước 1: Test thử kit LaunchPad.

BELGIUM ONLINE APPOINTMENT

LAB IP SLA Bài 1. Bùi Quốc Kỳ ***

Tìm hiểu Group Policy Object và các ví dụ

Google Search Engine. 12/24/2014 Google Search Engine 1

MA NG MA Y TI NH (Computer Networks)

I. Hướng Dẫn Đăng Nhập:

Online Appointment System will work better with below conditions/ Hệ thống đặt hẹn online sẽ hoạt động tốt hơn với điều kiện sau đây:

LINQ TO SQL & ASP.NET

Bài 7: Các cấu trúc điều khiển

Câu 1: (2 điểm) So sách giữa 2 đối tượng Response và Request. Cho ví dụ minh hoạ.

Bài 10. Cấu trúc liên nối. khác nhau được gọi là cấu trúc liên nối. nhu cầu trao đổi giữa các module.

- Chạy file cài đặt: kerio-kwf-whql win32.exe. Hộp thoại Choose Setup Language chọn English (United States), chọn

Exceptions. Outline 7/31/2012. Exceptions. Exception handling is an important aspect of objectoriented. Chapter 10 focuses on:

dụng một chính sách, điều này giúp dễ dàng quản lý và cung cấp tính năng Load Balancing (cân bằng tải) phục vụ tốt hơn các yêu cầu của tổ chức.

Các kiểu định địa chỉ họ MSC-51

Đa ngôn ngữ (Internationalization) trong Servlet

Chủ đề 7: Triển khai và Bảo trì. COMP1026 Introduction to Software Engneering CH7-1 HIENLTH

NHÚNG. Vi ñiều khiển BM Kỹ Thuật ðiện Tử - ðh Bách Khoa TP.HCM 2

CÁC KIỂU DỮ LIỆU TRỪU TƯỢNG CƠ BẢN CẤU TRÚC DỮ LIỆU CÂY

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

Bài 13: C++11. EE3490: Kỹ thuật lập trình HK1 2017/2018 TS. Đào Trung Kiên ĐH Bách khoa Hà Nội

biến Global có thể được áp dụng cho tất cả các extension trong tất cả các context trong Dialplan.

2.4. GIAO THỨC MQTT Các khái niệm cơ bản MQTT được phát triển bởi IBM và Eurotech, phiên bản mới nhất là MQTT 3.1 MQTT (Giao vận tầm xa) là

Dọn "rác" Windows 7 vào dịp cuối năm

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

B3: Bên khung Package Explore bên trái đi tới thư mục res, bạn sẽ thấy có 3 thư mục con:

BÀI THỰC HÀNH SỐ 1. Quản trị tập tin: 1/ Tạo các thư mục sau: Bài tập thực hành linux Linuxlab. bt1 bt11 bt111. bt121. bt12. bh1 bh11 bh111.

ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN

Bài tập căn bản Visual Basic.Net Vòng lặp. txtn. txtketqua. btntinh. txtn. txtketqua. btntinh. Trang 1

Bài thực hành 1: Chỉ mục trong SQL Server

PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG NÂNG CAO

HƯỚNG DẪN QUẢN TRỊ HỆ THỐNG

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

CHAPTER 6: DANH SÁCH LIÊN KẾT (LINKED LISTS)

Lập trình chuyên nâng cao. Lập trình phân tán (Distributed computing

Bài thực hành số 2 QUYỀN và ROLE

Transcription:

CẤU TRÚC DỮ LIỆU NÂNG CAO Các kiến thức yêu cầu Tóm tắt nội dung môn học Phương pháp kiểm tra đánh giá Tài liệu tham khảo 1

Các kiến thức yêu cầu Các thuật toán và cấu trúc dữ liệu cơ bản Ngôn ngữ lập trình: C++, nhưng không sử dụng class. Công cụ: VS C++, ứng dụng dạng console. 2

Tóm tắt nội dung môn học Cây cân bằng Cây đỏ đen (red black tree) Cây 2-3-4 Interval Heap Priority Search Tree B-Tree Phương pháp phân tích khấu trừ Cấu trúc đóng nhị thức Cấu trúc đóng Fibonacci Cấu trúc các tập rời nhau 3

Ứng dụng Ứng dụng trong đánh chỉ mục các CSDL lớn. Ứng dụng xây dựng thuật toán tốc độ cao định tuyến gói tin trong router. Ứng dụng khai phá dữ liệu hiện năng cao trong CSDL lớn, nhiều chiều. Ứng dụng trong xử lý dữ liệu không gian Ứng dụng trong xử lý dữ liệu Multimedia 4

Phương pháp kiểm tra đánh giá Điểm chuyên cần: 10% Kiểm tra giữa học phần (bắt buộc): 20% Thi kết thúc học phần (bắt buộc): 70% 5

Tài liệu tham khảo Slides bài giảng môn học Advanced Data Structures. Cambridge University Press - 2008; PETER BRASS. Introduction to Algorithms. McGraw Hill - 1990; Thomas H. C., Charles E.L., and Ronald L.R. Giáo trình thuật toán. Thống kế 2002. Nhóm Ngọc Anh Thư dịch Data Structures, Algorithms, and Object-Oriented Programming; McGraw Hill; Gregory Heilleman - 1996. Algorithms and Data Structures in C++; Tác giả Alan Parker,1993 6

Lecture 1: Cây cân bằng Cây nhị phân tìm kiếm (NPTK) có thể bị suy biến thành danh sách tuyến tính. Khi đó thời gian tìm kiếm là O(N). Để tăng tốc độ tìm kiếm thì chiều cao của cây phải nhỏ. Để tăng tốc độ tìm kiếm thì chiều cao của cây NPTK phải là O(log N). Các cây NPTK như thế gọi là balanced binary search trees. Examples are AVL tree, red-black tree. 7

AVL Tree (Adelson-Velskii,Landis 1962 ) Chiều cao của nút: Chiều cao của nút lá bằng 1 The height of an internal node is the maximum height of its children plus 1 8

AVL Tree Cây AVL là cây NPTK trong đó : Mọi nút trên cây thì chiều cao của cây con trái và chiều cao của cây con phải chênh lệch nhau không quá 1 9

AVL Tree X gốc của cây AVL có chiều cao h. N h số nút tối thiểu trên cây chiều cao h. Theo định nghĩa, ta có N h > N h 1 2N 2N + h 2 h 2 i N h 2 Nh 2 * i N > N + 1 h 2 + 1 > i=(h-1)/2; 2 ( h 1)/2 log N > ( h 1) / 2 (log N + 1)*2 > h 10

Các phép quay Khi thực hiện các phép toán (insertion or deletion), chúng ta cần phải biến đổi cây để đảm bảo tích chất cân bằng. Có hai dạng quay single rotations or double rotations. x y y B C A B x C A Before Rotation After Rotation e.g. Single Rotation 11

Các phép quay (cont.) Khi thêm/xóa có thể làm thay đổi chiều cao của cây. Khi đó điều kiện cân bằng có thể bị vi phạm. Chẳng hạn tại nút x sự khác nhau của left(x) và right(x) là 2. Áp dụng các phép quay tại nút x để hiệu chỉnh cây. 12

Case 1: Cây lệch trái 13

Case 1.1: Quay đơn phải T1 quanh T 14

Case 1.2: Quay đơn phải T1 15

Case 1.3: Quay kép Left-Right với T2 Quay trái T2 quanh T1, Quay phải T2 quanh T 16

Case 2: Cây lệch phải 17

Case 2: Cây lệch phải (Cont.) Các trường hợp cây bị lệch phải ta thực hiện các phép quay đơn và quay kép tương tự như trương hợp cây lệch trái nhưng theo chiều ngược lại. 18

Insertion Tiến hành tương tự như thêm khóa trong CNPTK. Kiểm tra các nút trên đường dẫn từ nút mới thêm đến gốc. Với mỗi nút x bắt gặp trên path kiểm tra left(x) và right(x). Nếu đã thỏa mãn đk cân bằng thì bỏ qua và xét tiếp nút ở trên. Nếu không thỏa mãn thì phải tiến hành quay đơn hoặc kép. Với phép thêm nút, phải quay tối đa một lần (hoặc quay đơn hoặc quay kép) 19

Insertion Giả sử x là nút có sự chênh lệnh của left(x) và right(x) lớn hơn 1 (bằng 2). Giả sử chiều cao của x là h+3 Có 4 TH sau: Chiều cao của left(x) là h+2 (height of right(x) is h) H of left(left(x)) is h+1 single rotate with left child H of right(left(x)) is h+1 double rotate with left child Chiều cao của right(x) là h+2 (height of left(x) is h) H of right(right(x)) is h+1 single rotate with right child H of left(right(x)) is h+1 double rotate with right child 20

Single rotation Thêm nút mới vào cây con A làm cho chiều cao của cây con A tăng lên 1 (bằng h+1). ĐK cân bằng bị vi phạm tại nút x. chiều cao của left(x) is h+2 chiều cao của right(x) is h. quay phải nút y quanh nút x. Nghiêng trái Nghiêng phải 21

Thêm nút vào cây con C. Single rotation ĐK cân bằng bị vi phạm tại nút x. Single rotation takes O(1) time. Insertion takes O(log N) time. 22

AVL Tree 5 5 x 3 8 3 y 8 C 1 4 0.8 1 4 A B 3 Insert 0.8 1 5 0.8 4 8 After rotation 23

Double rotation Thêm nút vào cây con B1 or B2. ĐK cân bằng bị vi phạm tại nút x. Quay trái z quanh y; quay phải z quanh x also called left-right rotate 24

Double rotation Thêm nút vào cây con B1 or B2. ĐK cân bằng bị vi phạm tại nút x. Quay phải z quanh y; quay trái z quanh x also called right-left rotate 25

AVL Tree 3 5 8 y 3 5 8 x C 1 4 A 1 4 z B 3.5 4 Insert 3.5 3 5 1 3.5 8 After Rotation 26

An Extended Example Insert 3,2,1,4,5,6,7, 16,15,14 Single rotation 3 3 3 2 Fig 1 2 2 1 Fig 4 3 Fig 2 1 2 Fig 5 3 4 1 Fig 3 2 1 3 Fig 6 Single rotation 4 5 27

2 1 4 2 1 4 Single rotation 3 4 2 5 3 5 5 Fig 8 Fig 7 6 4 2 5 Single rotation 1 3 6 4 1 3 6 Fig 9 2 6 Fig 10 7 1 3 7 5 Fig 11 28

4 2 6 1 3 7 5 Fig 12 16 4 2 6 Double rotation 4 1 3 Fig 13 5 7 15 16 2 6 1 3 5 Fig 14 7 15 16 29

4 2 6 Double rotation 4 2 7 1 3 5 15 1 3 6 15 Fig 15 7 16 5 14 16 14 Fig 16 30

Deletion Xóa nút x như trong CNPTK. Kiểm tra các nút trên path từ nút thay thế đến nút gốc. Với mỗi nút x bắt gặp trên path, kiểm tra left(x) và right(x). Nếu thõa mãn ĐK cân bằng thì xét tiếp nút ở trên, nếu không thõa mãn thì thực hiện phép quay tương ứng. Với phép xóa nút thì sau khi thực hiện phép quay ở nút x, chúng ta vẫn có thể phải thực hiện phép quay ở các nút trên của x. Vì vậy sau khi quay chúng ta vẫn phải tiếp tục xét các nút ở phía trên 31

Single rotations in deletion Xóa nút trên cây con C. rotate with left child 32

Single rotations in deletion Xóa nút trên cây con A. rotate with right child 33

Xóa nút trên cây con C. Double rotation also called left-right rotate 34

Double rotation Xóa nút trên cây con A. also called right-left rotate 35

Ví dụ xóa nút X X 36