Các giải thuật sắp xếp nội
Số trang: 105
Loại file: ppt
Dung lượng: 1.55 MB
Lượt xem: 17
Lượt tải: 0
Xem trước 10 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Ý tưởng: mô phỏng một trong những cách sắp xếp tự nhiên nhất trong thực tế: Chọn phần tử nhỏ nhất trong N phần tử ban đầu, đưa phần tử này về vị trí đúng là đầu dãy hiện hành Xem dãy hiện hành chỉ còn N-1 phần tử của dãy ban đầu, bắt đầu từ vị trí thứ 2; lặp lại quá trình trên cho dãy hiện hành... đến khi dãy hiện hành chỉ còn 1 phần tử.
Nội dung trích xuất từ tài liệu:
Các giải thuật sắp xếp nội CÁCGIảITHUậT SắPXếPNộI1ĐịNHNGHĨABÀITOÁNSắPXếP Sắpxếplàquátrìnhxửlýmộtdanhsáchcác phầntử(hoặccácmẫutin)đểđặtchúngtheomột thứtựthỏamãnmộttiêuchuẩnnàođódựatrên nộidungthôngtinlưugiữtạimỗiphầntử 2KHÁINIệMNGHịCHTHế Kháiniệmnghịchthế: Xétmộtmảngcácsốa ,a ,…a 0 1 n Nếucóia ,thìtagọiđólàmộtnghịch i j thế. Mảngchưasắpxếpsẽcónghịchthế. Mảngđãcóthứtựsẽkhôngchứanghịchthế. a ≤a ≤…≤a 0 1 n 3CÁCPHƯƠNGPHÁPSắPXếPTHÔNGDụNG Selectionsort Phứctạphơn •Shellsort Insertionsort Hiệuquảcao •Heapsort Interchangesort •Quicksort Bubblesort •Mergesort Shakersort •Radixsort BinaryInsertionsort •… Lớpthuậttoán Đơngiản, khác Chiphícao 4 PHƯƠNGPHÁP CHọNTRựCTIếP5 Selectionsort Vịtrí58phầntửnhỏnhấtlà: 12 5 1 6 3 7 4 10 2 0 1 2 3 4 5 6 7 8 Min=a For(j=a+1;jPHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT Mảngcóthứtựthìa =min(a ,a ,…,an1) i i i+1 Ýtưởng:môphỏngmộttrongnhữngcách sắpxếptựnhiênnhấttrongthựctế: ChọnphầntửnhỏnhấttrongNphầntửban đầu,đưaphầntửnàyvềvịtríđúnglàđầudãy hiệnhành XemdãyhiệnhànhchỉcònN1phầntửcủa dãybanđầu,bắtđầutừvịtríthứ2;lặplạiquá trìnhtrênchodãyhiệnhành...đếnkhidãy hiệnhànhchỉcòn1phầntử. 7PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT Bước1:i=1; Bước2:Tìmphầntửa[min]nhỏnhấttrong dãyhiệnhànhtừa[i]đếna[N] Bước3:Nếumin≠i,Hoánvịa[min]vàa[i] Bước4:Nếui≤N1thìi=i+1;LặplạiBước2 Ngượclại:Dừng.//N1phầntửđãnằmđúngvị trí. 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT Vídụ:sắpxếpdãysốsau 3,5,1,6,12,7,4,10,2 3 5 1 6 12 7 4 10 2 9PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 3 5 1 6 12 7 4 10 2 i=0 min=2 1 5 3 6 12 7 4 10 2 10 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 5 3 6 12 7 4 10 2 i=1 min=8 1 2 3 6 12 7 4 10 5 11 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 6 12 7 4 10 5 i=min=2 1 2 3 6 12 7 4 10 5 12 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 6 12 7 4 10 5 i=3 min=6 1 2 3 4 12 7 6 10 5 13 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 4 12 7 6 10 5 i=4 min=8 1 2 3 4 5 7 6 10 12 14 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 4 5 7 6 10 12 i=5 min=6 1 2 3 4 5 6 7 10 12 15 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 4 5 6 7 10 12 i=min=6 1 2 3 4 5 6 7 10 12 16 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 4 5 6 7 10 12 i=min=7 1 2 3 4 5 6 7 10 12 17 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 4 5 6 7 10 12 i=min=8 1 2 3 4 5 6 7 10 12 18 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORTvoidSelectionSort(){ intmin;//chỉsốphầntửnhỏnhấttrongdãyhiệnhành for(inti=0;iPHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT Đánhgiágiảithuật: Ởlượtthứi,cần(ni)lầnsosánhđểxác địnhphầntửnhỏnhấthiệnhành. Sốlượngphépsosánhkhôngphụthuộc vàotìnhtrạngcủadãysốbanđầu. Trongmọitrườnghợp,sốlầnsosánhlà: n −1 n(n − 1) ∑n −i = 2 i =1 20 ...
Nội dung trích xuất từ tài liệu:
Các giải thuật sắp xếp nội CÁCGIảITHUậT SắPXếPNộI1ĐịNHNGHĨABÀITOÁNSắPXếP Sắpxếplàquátrìnhxửlýmộtdanhsáchcác phầntử(hoặccácmẫutin)đểđặtchúngtheomột thứtựthỏamãnmộttiêuchuẩnnàođódựatrên nộidungthôngtinlưugiữtạimỗiphầntử 2KHÁINIệMNGHịCHTHế Kháiniệmnghịchthế: Xétmộtmảngcácsốa ,a ,…a 0 1 n Nếucóia ,thìtagọiđólàmộtnghịch i j thế. Mảngchưasắpxếpsẽcónghịchthế. Mảngđãcóthứtựsẽkhôngchứanghịchthế. a ≤a ≤…≤a 0 1 n 3CÁCPHƯƠNGPHÁPSắPXếPTHÔNGDụNG Selectionsort Phứctạphơn •Shellsort Insertionsort Hiệuquảcao •Heapsort Interchangesort •Quicksort Bubblesort •Mergesort Shakersort •Radixsort BinaryInsertionsort •… Lớpthuậttoán Đơngiản, khác Chiphícao 4 PHƯƠNGPHÁP CHọNTRựCTIếP5 Selectionsort Vịtrí58phầntửnhỏnhấtlà: 12 5 1 6 3 7 4 10 2 0 1 2 3 4 5 6 7 8 Min=a For(j=a+1;jPHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT Mảngcóthứtựthìa =min(a ,a ,…,an1) i i i+1 Ýtưởng:môphỏngmộttrongnhữngcách sắpxếptựnhiênnhấttrongthựctế: ChọnphầntửnhỏnhấttrongNphầntửban đầu,đưaphầntửnàyvềvịtríđúnglàđầudãy hiệnhành XemdãyhiệnhànhchỉcònN1phầntửcủa dãybanđầu,bắtđầutừvịtríthứ2;lặplạiquá trìnhtrênchodãyhiệnhành...đếnkhidãy hiệnhànhchỉcòn1phầntử. 7PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT Bước1:i=1; Bước2:Tìmphầntửa[min]nhỏnhấttrong dãyhiệnhànhtừa[i]đếna[N] Bước3:Nếumin≠i,Hoánvịa[min]vàa[i] Bước4:Nếui≤N1thìi=i+1;LặplạiBước2 Ngượclại:Dừng.//N1phầntửđãnằmđúngvị trí. 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT Vídụ:sắpxếpdãysốsau 3,5,1,6,12,7,4,10,2 3 5 1 6 12 7 4 10 2 9PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 3 5 1 6 12 7 4 10 2 i=0 min=2 1 5 3 6 12 7 4 10 2 10 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 5 3 6 12 7 4 10 2 i=1 min=8 1 2 3 6 12 7 4 10 5 11 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 6 12 7 4 10 5 i=min=2 1 2 3 6 12 7 4 10 5 12 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 6 12 7 4 10 5 i=3 min=6 1 2 3 4 12 7 6 10 5 13 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 4 12 7 6 10 5 i=4 min=8 1 2 3 4 5 7 6 10 12 14 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 4 5 7 6 10 12 i=5 min=6 1 2 3 4 5 6 7 10 12 15 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 4 5 6 7 10 12 i=min=6 1 2 3 4 5 6 7 10 12 16 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 4 5 6 7 10 12 i=min=7 1 2 3 4 5 6 7 10 12 17 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT 1 2 3 4 5 6 7 10 12 i=min=8 1 2 3 4 5 6 7 10 12 18 0 1 2 3 4 5 6 7 8PHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORTvoidSelectionSort(){ intmin;//chỉsốphầntửnhỏnhấttrongdãyhiệnhành for(inti=0;iPHƯƠNGPHÁPCHọNTRựCTIếPSELECTIONSORT Đánhgiágiảithuật: Ởlượtthứi,cần(ni)lầnsosánhđểxác địnhphầntửnhỏnhấthiệnhành. Sốlượngphépsosánhkhôngphụthuộc vàotìnhtrạngcủadãysốbanđầu. Trongmọitrườnghợp,sốlầnsosánhlà: n −1 n(n − 1) ∑n −i = 2 i =1 20 ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Giải thuật dữ liệu Tài liệu giải thuật dữ liệu Định nghĩa bài toán sắp xếp Khái niệm nghịch thế Phương pháp sắp xếpTài liệu có 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 361 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 187 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 175 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 149 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 146 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 145 0 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 4: Một số giải thuật sắp xếp và tìm kiếm
29 trang 125 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 110 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 104 0 0 -
49 trang 87 0 0