Sắp xếp trộn
Số trang: 29
Loại file: ppt
Dung lượng: 452.50 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Trộn Trực tiếp Giải thuật trộn trực tiếp là phương pháp trộn đơn giản nhất. Việc phân hoạch thành các dãy con đơn giản chỉ là tách dãy gồm n phần tử thành n dãy con. Ðòi hỏi của thuật toán về tính có thứ tự của các dãy con luôn được thỏa trong cách phân hoạch này vì dãy gồm một phân tử luôn có thứ tự.
Nội dung trích xuất từ tài liệu:
Sắp xếp trộnSắpxếptrộn mergesort Tưtưởngtrộn Có2mảngđãđượcsắpxếpchiềudài N,M Tạora1mảngchungđượcsắpxếp 2 5 7 8 9 10 13 14 1 3 4 6 11 201 2 3 4 5 6 7 8 9 10 11 13 14 20 Bước1:chọnmincủa2phầntửđầu dãychépquamảngkếtquả Bước2:hủyphầntửmin Bước3:nếuchưađếncuốimảngtrởvề bước1 Nếuđếncuốimảng:chépphầncònlại củamảngkiavàomảngkếtquả 2 5 7 8 9 10 13 14 i=0 1 3 4 6 11 20 j=01 2 5 7 8 9 10 13 14 i=0 1 3 4 6 11 20 j=11 2 2 5 7 8 9 10 13 14 i=1 1 3 4 6 11 20 j=11 2 3 2 5 7 8 9 10 13 14 i=1 1 3 4 6 11 20 j=21 2 3 4 Thựchiệnlầnlượt 2 5 7 8 9 10 13 14 i=1 1 3 4 6 11 20 j=31 2 3 4 2 5 7 8 9 10 13 14 j=7 i=8 1 3 4 6 11 20 J=51 2 3 4 5 6 7 8 9 10 11 13 14 Chépphầncònlạicủamảng2 i=8 20 J=5 j=61 2 3 4 5 6 7 8 9 10 11 13 14 20 A,b,kq A,b,kq i=j=0 i=j=0 While(i+jSắpxếpbằngphươngphápmergesort Nguyêntắcsắpxếpbằngphéptrộn Ðểsắpxếpdãya1,a2,...,an,giảithuật MergeSortdựatrênnhậnxétsau: Mỗidãya1,a2,...,anbấtkỳđềucóthểcoi nhưlàmộttậphợpcácdãyconliêntiếpmà mồidãyconđềuđãcóthứtự.Vídụdãy12, 2,8,5,1,6,4,15cóthểcoinhưgồm5dãy conkhônggiảm(12);(2,8);(5);(1,6);(4, 15). Dãyđãcóthứtựcoinhưcó1dãycon. mộtcáchtiếpcậnđểsắpxếpdãylàtìmcáchlàmgiảmsốdãy conkhônggiảmcủanó.Ðâychínhlàhướngtiếpcậncủathuật toánsắpxếptheophươngpháptrộn. TrongphươngphápMergesort,mấuchốtcủavấnđềlàcách phânhoạchdãybanđầuthànhcácdãycon.Saukhiphân hoạchxong,dãybanđầusẽđượctáchrathành2dãyphụtheo nguyêntắcphânphốiđềuluânphiên.Trộntừngcặpdãycon củahaidãyphụthànhmộtdãyconcủadãybanđầu,tasẽnhân lạidãybanđầunhưngvớisốlượngdãyconítnhấtgiảmđimột nửa.Lặplạiquitrìnhtrênsaumộtsốbước,tasẽnhậnđược1 dãychỉgồm1dãyconkhônggiảm.Nghĩalàdãybanđầuđã đượcsắpxếp.TrộnTrựctiếp Giảithuậttrộntrựctiếplàphươngpháptrộn đơngiảnnhất.Việcphânhoạchthànhcác dãyconđơngiảnchỉlàtáchdãygồmnphần tửthànhndãycon.Ðòihỏicủathuậttoánvề tínhcóthứtựcủacácdãyconluônđượcthỏa trongcáchphânhoạchnàyvìdãygồmmột phântửluôncóthứtự.Cứmỗilầntáchrồi trộn,chiềudàicủacácdãyconsẽđượcnhân đôi.Thuậttoán Cácbướcthựchiệnthuậttoánnhưsau: Bước1://Chuẩnbị k=1;//klàchiềudàicủadãycontrongbước hiệnhành Bước2: Táchdãya1,a2,.,anthành2dãyb,ctheo nguyêntắcluânphiêntừngnhómkphầntử: b=a1,…,ak,a2k+1,.,a3k,. c=ak+1,.,a2k,a3k+1,.,a4k,.Thuậttoán(tt) Bước3: Trộntừngcặpdãycongồmkphầntử của2dãyb,cvàoa. Bước4: k=k*2; Nếuk Vídụ Sắpxếpdãysố 3,5,1,6,12,7,4,10,2,83 5 1 6 12 7 4 10 2 8 3 5 1 6 12 7 4 10 2 8K=1 3 1 12 4 2 5 6 7 10 8 3 5 1 6 7 12 4 10 2 8 3 5 1 6 7 12 4 10 2 8K=2 3 5 7 12 2 8 1 6 4 10 1 3 5 6 4 7 10 12 2 8 1 3 5 6 4 7 10 12 2 8K=4 1 3 5 6 2 8 4 7 10 12 ...
Nội dung trích xuất từ tài liệu:
Sắp xếp trộnSắpxếptrộn mergesort Tưtưởngtrộn Có2mảngđãđượcsắpxếpchiềudài N,M Tạora1mảngchungđượcsắpxếp 2 5 7 8 9 10 13 14 1 3 4 6 11 201 2 3 4 5 6 7 8 9 10 11 13 14 20 Bước1:chọnmincủa2phầntửđầu dãychépquamảngkếtquả Bước2:hủyphầntửmin Bước3:nếuchưađếncuốimảngtrởvề bước1 Nếuđếncuốimảng:chépphầncònlại củamảngkiavàomảngkếtquả 2 5 7 8 9 10 13 14 i=0 1 3 4 6 11 20 j=01 2 5 7 8 9 10 13 14 i=0 1 3 4 6 11 20 j=11 2 2 5 7 8 9 10 13 14 i=1 1 3 4 6 11 20 j=11 2 3 2 5 7 8 9 10 13 14 i=1 1 3 4 6 11 20 j=21 2 3 4 Thựchiệnlầnlượt 2 5 7 8 9 10 13 14 i=1 1 3 4 6 11 20 j=31 2 3 4 2 5 7 8 9 10 13 14 j=7 i=8 1 3 4 6 11 20 J=51 2 3 4 5 6 7 8 9 10 11 13 14 Chépphầncònlạicủamảng2 i=8 20 J=5 j=61 2 3 4 5 6 7 8 9 10 11 13 14 20 A,b,kq A,b,kq i=j=0 i=j=0 While(i+jSắpxếpbằngphươngphápmergesort Nguyêntắcsắpxếpbằngphéptrộn Ðểsắpxếpdãya1,a2,...,an,giảithuật MergeSortdựatrênnhậnxétsau: Mỗidãya1,a2,...,anbấtkỳđềucóthểcoi nhưlàmộttậphợpcácdãyconliêntiếpmà mồidãyconđềuđãcóthứtự.Vídụdãy12, 2,8,5,1,6,4,15cóthểcoinhưgồm5dãy conkhônggiảm(12);(2,8);(5);(1,6);(4, 15). Dãyđãcóthứtựcoinhưcó1dãycon. mộtcáchtiếpcậnđểsắpxếpdãylàtìmcáchlàmgiảmsốdãy conkhônggiảmcủanó.Ðâychínhlàhướngtiếpcậncủathuật toánsắpxếptheophươngpháptrộn. TrongphươngphápMergesort,mấuchốtcủavấnđềlàcách phânhoạchdãybanđầuthànhcácdãycon.Saukhiphân hoạchxong,dãybanđầusẽđượctáchrathành2dãyphụtheo nguyêntắcphânphốiđềuluânphiên.Trộntừngcặpdãycon củahaidãyphụthànhmộtdãyconcủadãybanđầu,tasẽnhân lạidãybanđầunhưngvớisốlượngdãyconítnhấtgiảmđimột nửa.Lặplạiquitrìnhtrênsaumộtsốbước,tasẽnhậnđược1 dãychỉgồm1dãyconkhônggiảm.Nghĩalàdãybanđầuđã đượcsắpxếp.TrộnTrựctiếp Giảithuậttrộntrựctiếplàphươngpháptrộn đơngiảnnhất.Việcphânhoạchthànhcác dãyconđơngiảnchỉlàtáchdãygồmnphần tửthànhndãycon.Ðòihỏicủathuậttoánvề tínhcóthứtựcủacácdãyconluônđượcthỏa trongcáchphânhoạchnàyvìdãygồmmột phântửluôncóthứtự.Cứmỗilầntáchrồi trộn,chiềudàicủacácdãyconsẽđượcnhân đôi.Thuậttoán Cácbướcthựchiệnthuậttoánnhưsau: Bước1://Chuẩnbị k=1;//klàchiềudàicủadãycontrongbước hiệnhành Bước2: Táchdãya1,a2,.,anthành2dãyb,ctheo nguyêntắcluânphiêntừngnhómkphầntử: b=a1,…,ak,a2k+1,.,a3k,. c=ak+1,.,a2k,a3k+1,.,a4k,.Thuậttoán(tt) Bước3: Trộntừngcặpdãycongồmkphầntử của2dãyb,cvàoa. Bước4: k=k*2; Nếuk Vídụ Sắpxếpdãysố 3,5,1,6,12,7,4,10,2,83 5 1 6 12 7 4 10 2 8 3 5 1 6 12 7 4 10 2 8K=1 3 1 12 4 2 5 6 7 10 8 3 5 1 6 7 12 4 10 2 8 3 5 1 6 7 12 4 10 2 8K=2 3 5 7 12 2 8 1 6 4 10 1 3 5 6 4 7 10 12 2 8 1 3 5 6 4 7 10 12 2 8K=4 1 3 5 6 2 8 4 7 10 12 ...
Tìm kiếm theo từ khóa liên quan:
cấu trúc dữ liệu Sắp xếp trộn Tư tưởng trộn Các bước thực hiện trộn Thuật toán trộn Tài liệu sắp xếp trộnTài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 318 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 163 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 152 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 139 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 125 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 74 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 73 0 0 -
49 trang 72 0 0
-
54 trang 70 0 0