1. Trang chủ
  2. » Tất cả

14 các cấu trúc dữ liệu nâng cao chuong 5 b cay

30 3 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,1 MB

Nội dung

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 2014 151 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 2014 152 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Đặ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ớ  Tốc độ tìm kiếm nhanh Winter 2014 153 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 2014 154/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 2014 155/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 2014 156/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM m-way Search Tree (1) Cây nhị phân với phần tử gom thành block (trên đĩa) Winter 2014 157/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 2014 158/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 2014 159/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Đị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 2014 160/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Lưu trữ B-cây nhớ (1) Winter 2014 166/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 2014 167/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Lưu trữ B-cây nhớ ngồi (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 2014 168/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 2014 169/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Khai báo cấu trúc B-cây (2) Winter 2014 170/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Các thao tác B-cây  Tìm kiếm khóa  Thêm khóa  Xóa khóa Winter 2014 171/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Thêm khóa vào B-cây (1) Khóa thêm vào node node chỗ trống Winter 2014 172/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 2014 173/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 Q 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 2014 174/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 2014 175/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Xóa khóa B-cây (1) Xóa khóa node node dư khóa Winter 2014 176/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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 2014 177/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM 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: 25/03/2023, 13:10

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w