1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu nâng cao (tt) - Nguyễn Tri Tuấn

30 38 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 1,14 MB

Nội dung

Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu nâng cao cung cấp cho người đọc các kiến thức: Truy xuất dữ liệu trên bộ nhớ ngoài, m-way search tree, định nghĩa B-cây, lưu trữ B-cây trên bộ nhớ ngoài, khai báo cấu trúc B-cây,... Mời các bạn cùng tham khảo.

Các cấu trúc liệu nâng cao (Advanced Data Structures) 3.1 Cây nhị phân tìm kiếm cân 3.2 B-Cây 3.3 Bảng băm – Hash Table Winter 2017 151 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt B-Cây  Đặt vấn đề  Truy xuất liệu nhớ  m-way search tree  Định nghĩa B-cây  Lưu trữ B-cây nhớ  Khai báo cấu trúc B-cây  Các thao tác B-cây Winter 2017 152 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Đặt vấn đề  Các ứng dụng database  Cần lưu trữ liệu lớn (vd 1,000,000 – 1,000,000,000 phần tử)  Lưu trữ nhớ ngồi  Tốc độ tìm kiếm nhanh Winter 2017 153 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Truy xuất liệu nhớ (1)  Bộ nhớ ngoài: HDD, DVD, tape,…  Đơn vị truy xuất tối thiểu ?  Thời gian truy xuất ? Winter 2017 154/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Truy xuất liệu nhớ (2)  Thời gian để đọc/ghi block t = thời gian dịch chuyển đầu đọc đến block + thời gian đọc/ghi block vào nhớ Winter 2017 155/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Truy xuất liệu nhớ (3)  Vd thời gian để đọc block liên tiếp, block=1KB t1 = 20ms + (5ms + 5ms) = 30ms  Vd thời gian để đọc block xa nhau, block=1KB t2 = * (20ms + 5ms) = 50ms Winter 2017 156/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt m-way Search Tree (1) Cây nhị phân với phần tử gom thành block (trên đĩa) Winter 2017 157/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt m-way Search Tree (2)  Định nghĩa: m-way search tree thỏa     Mỗi node có tối đa m (m-1) khóa Các khóa node tăng dần Các khóa thứ i nhỏ khóa i Các khóa thứ (i+1) lớn khóa i Winter 2017 158/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt m-way Search Tree (3) Cây tìm kiếm m-way, thao tác tìm kiếm hoạt động tương tự BST Winter 2017 159/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Định nghĩa B-cây (1)  Định nghĩa: B-cây bậc m (m>2) m-way search tree thỏa  Node gốc có khóa con, ngoại trừ node  Mỗi node có (m-1)/2 khóa  Mỗi node có (m-1)/2 khóa (m1)/2+1  Tất node có mức * Node (internal node): node gốc * B-cây giới thiệu vào năm 1972 Bayer McCreight Winter 2017 160/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Lưu trữ B-cây nhớ (1) Winter 2017 166/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Lưu trữ B-cây nhớ (2)  Node gốc nên lưu thường xuyên nhớ  Không cần thực thao tác READ_ROOT  Thao tác WRITE_ROOT thực node gốc thay đổi Winter 2017 167/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Lưu trữ B-cây nhớ (3) (a) B-cây với khóa khơng có thơng tin phụ (b) B-cây có thêm thơng tin phụ cho khóa Winter 2017 168/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Khai báo cấu trúc B-cây (1)  Hãy xây dựng cấu trúc liệu khai báo (struct/class) cho node B-cây ?  Hãy xây dựng cấu trúc liệu khai báo (struct/class) cho header file chứa B-cây ? Winter 2017 169/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Khai báo cấu trúc B-cây (2) Winter 2017 170/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Các thao tác B-cây  Tìm kiếm khóa  Thêm khóa  Xóa khóa Winter 2017 171/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Thêm khóa vào B-cây (1) Khóa thêm vào node node chỗ trống Winter 2017 172/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Thêm khóa vào B-cây (2) Khóa thêm vào node đầy  split node chuyển khóa lên node cha Winter 2017 173/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Thêm khóa vào B-cây (3)  Thuật tốn:  Khóa thêm vào node node cịn chỗ trống Các khóa node thứ tự tăng dần  Nếu node chứa khóa đầy  tách node (split) cách tạo node mới; copy (m-1)/2 khóa sang node mới; chuyển khóa lên node cha; tạo trỏ từ node cha đến node Quá trình tách node thực liên tiếp cho node B-cây  Trường hợp xấu nhất, node gốc bị tách tạo thành node gốc Winter 2017 174/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Thêm khóa vào B-cây (4) Split node nhiều lần dẫn tới split node gốc  tạo thành node gốc Winter 2017 175/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Xóa khóa B-cây (1) Xóa khóa node node dư khóa Winter 2017 176/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Xóa khóa B-cây (2) Xóa khóa node  node thiếu khóa node anh/em có khóa dư  mượn khóa từ node anh/em Winter 2017 177/203 CuuDuongThanCong.com (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM https://fb.com/tailieudientucntt Xóa khóa B-cây (3)  Thuật tốn:  Xóa khóa node • Nếu sau xóa key, số khóa node >= (m-1)/2  stop • Nếu sau xóa key, node có (m-1)/2 khóa – Nếu node anh/em có > (m-1)/2 khóa  mượn khóa từ node anh/em – Nếu node anh/em có

Ngày đăng: 02/12/2020, 12:44

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN