1. Trang chủ
  2. » Giáo án - Bài giảng

slide Bài giảng môn cấu trúc dữ liệu 2: Chương 1

29 618 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 29
Dung lượng 0,96 MB

Nội dung

CTDL Sắp Xếp Ngoại Sắp thứ tự ngoại gì?   Sắp thứ tự ngoại thứ tự tập tin Vì phải xếp tập tin? Một số phương pháp trộn Phương pháp trộn Run Phương pháp trộn tự nhiên Phương pháp trộn đa lối cân (Balanced multiway merging) Phương pháp trộn Run      Run dãy liên tiếp phần tử có thứ tự Ví dụ Run: 12 50 40 60 Chiều dài Run số phần tử Run Trong ví dụ có run có độ dài Mỗi phần tử dãy run có độ dài Phương pháp trộn Run   Việc tạo run từ run ban đầu gọi trộn run (merge) Run tạo từ hai run ban đầu dãy phần tử thứ tự Phương pháp trộn Run Mô tả toán  Dữ liệu vào: tập tin f0 cần xếp  Dữ liệu ra: tập tin f0 xếp  f1, f2 hai tập tin phụ dùng để xếp Phương pháp trộn Run Bước 1: - Giả sử phần tử f0 là: 24 12 67 33 58 42 11 34 29 31 - Khởi tạo f1, f2 rỗng - Thực phân bố m=1 phần tử từ f0 vào f1 f2: f1: 24 67 58 11 29 f2: 12 33 42 34 31 - Trộn f1, f2 thành f0: f0: 12 24 33 67 42 58 11 34 29 31 Phương pháp trộn Run Bước 2: - Phân bố m=2*m=2 phần tử từ f0 vào f1 f2: f1: 12 24 42 58 29 31 f0: 12 24 33 67 42 58 11 34 29 31 f2: 33 67 11 34 - Trộn f1, f2 thành f0: f1: 12 24 42 58 29 31 f0: 12 24 33 67 11 34 42 58 29 31 f2: 33 67 11 34 Phương pháp trộn Run Bước 3: - Tương tự bước 2, phân bố m=2*m=4 phần tử từ f0 vào f1 f2, kết thu sau: f1: 12 24 33 67 29 31 f2: 11 34 42 58 - Trộn f1, f2 thành f0: f0: 11 12 24 33 34 42 58 67 29 31 10 Bài tập  Áp dụng phương pháp trộn Run để xếp file với nội dung sau: 15 Một số phương pháp trộn Phương pháp trộn Run Phương pháp trộn tự nhiên Phương pháp trộn đa lối cân (Balanced multiway merging) 16 Phương pháp trộn tự nhiên  Trong phương pháp trộn trình bày trên, giải thuật không tận dụng chiều dài cực đại run trước phân bổ; vậy, việc tối ưu thuật toán chưa tận dụng  Đặc điểm phương pháp trộn tự nhiên tận dụng độ dài “tự nhiên” run ban đầu; nghĩa là, thực việc trộn run có độ dài cực đại vơi dãy bao gồm run: dãy thứ tự 17 Phương pháp trộn tự nhiên Lặp Cho đến dãy cần gồm run Phân bố: Phân bố F0 vào F1 F2 theo run tự nhiên Trộn: Trộn run F1 F2 vào F0 Quá trình tiếp tục số run F0 dừng 18 19 20 Nội dung Phương pháp trộn Run Phương pháp trộn tự nhiên Phương pháp trộn đa lối cân (Balanced multiway merging) 21 Phương pháp trộn đa lối cân   Thuật tốn xếp ngồi cần giai đoạn: Phân phối trộn  Giai đoạn làm thay đổi thứ tự?  Chi phí cho giai đoạn phân phối? Rút kết luận:  Thay thực giai đoạn, ta cần thực 01 giai đoạn trộn Tiết kiệm ½ chi phí Copy  Cần số lượng file trung gian gấp đôi  22 Phương pháp trộn đa lối cân  Chi phí xếp tỉ lệ với số bước thực hiện:      Nếu bước cần N thao tác copy Nếu dùng file trung gian cần log2N bước  cần N * log2N thao tác copy Để giảm số bước  Phân bố số Run nhiều file trung gian Nếu dùng n file trung gian: cần lognN bước  cần N * lognN thao tác copy Rút kết luận:    Dùng nhiều file trung gian để giảm số bước Tiết kiệm thao tác copy cách thực giai đoạn Sử dụng 2*n file trung gian:   n file nguồn n file đích 23 Phương pháp trộn đa lối cân B1: Gọi tập nguồn S = {f1, f2, …, fn} Gọi tập đích D = {g1, g2, …, gn} Chia xoay vòng liệu file F0 cho file thuộc tập nguồn, lần Run F0 hết  B2: Trộn Run file thuộc tập nguồn S, tạo thành Run mới, lần ghi lên file thuộc tập đích D  B3: Nếu (số Run file D > 1) thì:   Hốn vị vai trị tập nguồn (S) tập đích (D)  Quay lại B2 Ngược lại kết thúc thuật toán 24 Phương pháp trộn đa lối cân  fInput: U Q N M K I H F D C B, N=3 // Phân phối (lần 1) f1: U M H C f2: Q K F B f3: N I D // Trộn (lần 1) g1: N Q U B C g2: I K M g3: D F H // Trộn (lần 2) f1: D F H I K M N Q U f2: B C f3: NULL // Trộn (lần 3) g1: B C D F H I K M N Q U g2: NULL g3: NULL 25 Phương pháp trộn đa lối cân 26 Phương pháp trộn đa lối cân 27 Phương pháp trộn đa lối cân 28 Bài tập 29 ... từ f0 vào f1 f2: f1: 12 24 42 58 29 31 f0: 12 24 33 67 42 58 11 34 29 31 f2: 33 67 11 34 - Trộn f1, f2 thành f0: f1: 12 24 42 58 29 31 f0: 12 24 33 67 11 34 42 58 29 31 f2: 33 67 11 34 Phương... Khởi tạo f1, f2 rỗng - Thực phân bố m =1 phần tử từ f0 vào f1 f2: f1: 24 67 58 11 29 f2: 12 33 42 34 31 - Trộn f1, f2 thành f0: f0: 12 24 33 67 42 58 11 34 29 31 Phương pháp trộn Run Bước 2: - Phân... vào f1 f2, kết thu sau: f1: 12 24 33 67 29 31 f2: 11 34 42 58 - Trộn f1, f2 thành f0: f0: 11 12 24 33 34 42 58 67 29 31 10 Phương pháp trộn Run Bước 4: - Phân bố m=2*m=8 phần tử từ f0 vào f1 f2:

Ngày đăng: 08/06/2018, 12:26

TỪ KHÓA LIÊN QUAN

w