intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Cấu trúc dữ liệu và giải thuật (phần 7)

Chia sẻ: Nguyen Kien | Ngày: | Loại File: PDF | Số trang:10

137
lượt xem
30
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong tài liệu này các bạn sẽ tìm hiểu về thuật toán Merge sort một thuật toán theo tư tưởng chộn để cho ra kết quả đã sắp xếp. Theo phương pháp đệ quy

Chủ đề:
Lưu

Nội dung Text: Cấu trúc dữ liệu và giải thuật (phần 7)

  1. Merge sort tr c ti p Merge ti 41
  2. Merge sort tr c ti p Merge ti ánh giá thu t toán: - Chi phí th c hi n MergeSort là O(nlgn) - Như c i m: Không t n d ng ư c c tính c a dãy c n s p x p. Ví d : Trư ng h p dãy ã có s n th t Thu t toán Merge sort c i ti n: Phương pháp - tr n t nhiên (Natural Merge sort) 42
  3. Natural Merge sort Natural Khái ni m ư ng ch y (run): M t ư ng ch y c a dãy a là 1 dãy con không gi m c a a. Nghĩa là, ư ng ch y r = (ai,ai+1,…,aj) ph i th a i u ki n: Ví du: Cho dãy a=[12,2,8,5,1,6,4,15] có 5 ư ng ch y g m (12),(2,8),(5),(1,6),(4,15)
  4. Natural Merge sort Natural Thu t toán: m s ư ng ch y - B1: r = 0; // r dùng - B2: Tách dãy a=[a1,a2,…,an] thành 2 dãy b,c theo nguyên t c luân phiên t ng ư ng ch y - B3: Tr n t ng c p ư ng ch y c a 2 dãy b,c vào a - B4: N u r
  5. Natural Merge sort Natural Ví d : Cho dãy a=[5,1,2,8,4,17,10,12,4,3,24,1,4] B1:(5);(1,2,8);(4,17);(10,12);(4);(3,24);(1,4) r=7 B2:b=[(5);(4,17);(4);(1,4)] c=[(1,2,8);(10,12);(3,24)] B3:a=[1,2,5,8,4,10,12,17,3,4,24,1,4) (1,2,5,8);(4,10,12,17);(3,4,24);(1,4) r=4 B2 B2:b=[(1,2,5,8);(3,4,24)] c=[(4,10,12,17);(1,4)] B3:a=[1,2,4,5,8,10,12,17,1,3,4,4,24]
  6. Natural Merge sort Natural B3:a=[1,2,4,5,8,10,12,17,1,3,4,4,24] (1,2,4,5,8,10,12,17);(1,3,4,4,24) r=2 B2 B2: b=[(1,2,4,5,8,10,12,17)] c=[(1,3,4,4,24)] B3: a=[1,1,2,3,4,4,4,5,8,10,12,17,24] (1,1,2,3,4,4,4,5,8,10,12,17,24) r=1 D ng
  7. Natural Merge sort Natural Ưu và như c i m: - Thu t toán tr n t nhiên t n d ng ư c các ư ng ch y t nhiên c a dãy - Tuy nhiên, tr n t nhiên òi h i không gian b nh lưu các dãy ph b, c - Thu t toán tr n t nhiên thư ng ng d ng trong các c u trúc d li u là danh sách liên k t ho c file
  8. Polyphase Merge sort Polyphase Tr n a l i cân b ng: Thay vì th c hi n 2 giai o n: Phân ph i và tr n như Thu t toán Merge sort thông thư ng, tr n a pha cân b ng ch c n th c hi n 1 giai o n tr n - Ti t ki m ½ chi phí - C n s lư ng b nh trung gian g p ôi
  9. Polyphase Merge sort Polyphase Ví d : a=[3,5,2,7,12,8,4,15,20,1,2,8,23,7,21,27] Dùng 6 m ng trung gian B1: Phân ph i các run luân phiên vào a1,a2,a3 a1: (3,5);(4,15,20) a2: (2,7,12);(1,2,8,23) a3: (8);(7,21,27) B2: Tr n các run c a a1,a2,a3 và luân phiên phân ph i vào b1,b2,b3
  10. Polyphase Merge sort Polyphase b1: (2,3,5,7,8,12) b2: (1,2,4,7,8,15,20,21,23,27) b3: NULL Run =2 Ti p t c tr n b1,b2,b3 vào ngư c l i a1,a2,a3 a1: 1,2,2,3,4,5,7,7,8,8,12,15,20,21,23,27 a2:NULL a3: NULL Run =1. K t thúc
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2