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

Bài giảng Phân tích thiết kế và giải thuật - Chương 3: Sắp xếp ngoại

27 65 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 27
Dung lượng 1,13 MB

Nội dung

Bài giảng Phân tích thiết kế và giải thuật - Chương 3: Sắp xếp ngoại cung cấp cho người học các kiến thức: Sắp thứ tự ngoại là gì? 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,...Mời các bạn cùng tham khảo nội dung chi tiết.

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ả tố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 - 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 Bước 1: - 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: f0: 12 24 33 67 42 58 11 34 29 31 f1: 12 24 42 58 29 31 f2: 33 67 11 34 - Trộn f1, f2 thành f0: f0: 12 24 33 67 11 34 42 58 29 31 f1: 12 24 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: f0: 12 24 33 67 11 34 42 58 29 31 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 Thuật toán trộn Run 13 Bài tập • Áp dụng phương pháp trộn Run để xếp file với nội dung sau: 14 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) 15 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 chưa 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ự 16 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 17 Phương pháp trộn tự nhiên • Giải thuật While (Số Run F0 >1) { Phân bố F0 vào F1, F2 theo Run tự nhiên Trộn Run F1, F2 vào F0 } - [Distribute] Chia xoay vòng liệu F0 cho F1 F2, lần run file F0 hết - [Merger] Trộn cặp run F1 F2 tạo thành run F0 18 Phương pháp trộn tự nhiên • F0: • Bước 1: – F1: – F2: – F0: • Bước 2: – F1: – F2: – F0: • Bước 3: – F1: – F2: – F0: • Bước 4: Dừng F0 có Run 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 • 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 25 Phương pháp trộn đa lối cân m=3 26 Phương pháp trộn đa lối cân 27 Bài tập 28 ... tự nhiên • Giải thuật While (Số Run F0 >1) { Phân bố F0 vào F1, F2 theo Run tự nhiên Trộn Run F1, F2 vào F0 } - [Distribute] Chia xoay vòng liệu F0 cho F1 F2, lần run file F0 hết - [Merger] Trộn... rỗng Bước 1: - 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ươ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: f0: 12 24 33 67 11 34 42 58 29 31 f1: 12 24 33 67 29 31 f2: 11 34 42 58 - Trộn f1, f2 thành f0:

Ngày đăng: 31/10/2020, 15:22

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w