Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Đỗ Ngọc Như Loan
Số trang: 90
Loại file: pptx
Dung lượng: 806.61 KB
Lượt xem: 19
Lượt tải: 0
Xem trước 9 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Cấu trúc dữ liệu và giải thuật - Chương 2: Các giải thuật tìm kiếm và sắp xếp" cung cấp cho người học các kiến thức: Định nghĩa giải thuật tìm kiếm, bài toán, tìm kiếm tuần tự,... Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Đỗ Ngọc Như LoanGV:ĐỗNgọcNhưLoanĐịnhnghĩagiảithuậttìmkiếm Input:mộtdãynđốitượng(a1,a2,....,an)và mộtđốitượngk Output:làmộtgiátrịlogictruenếucóktrong dãyhoặcfalsenếungượclại DùngmảnghoặcDSLKđểbiểudiễndãyđối tượng Phầnnàydùngmảngmộtchiều(cácđối tượnglàsố)BàitoánYêu cầu: Cho dãy số nguyên a chứa các số đôimộtkhácnhau.Quy ướcvịtrícủaphầntửđầutiênlà 0. Tìm vị trí xuất hiện của phần tử có giá trị ktrong dãy a hoặc đưa ra 1 nếu không có phần tửnàobằngk.DữliệuvàotừfileTIMKIEM.INPcódạng: Dòngđầulàsốnguyênnvàk DòngthứhaigồmnsốKết quả ra file TIMKIEM.OUT có dạng: vị trí của ktrongdãysố.Vídụ:TIMKIEM.INP68Tìmkiếmtuầntự(Linearsearch)Ýtưởng:Duyệttuầntựtừđầumảng,kếthợpsosánhgiátrịcácphầntửcủamảngvớikđểxácđịnhcóhaykhôngphầntửkk=8 9 2 8 3 1 4 i=0 9 2 8 3 1 4 i=1 9 2 8 3 1 4 i=2 Đãtìm được Output 2boolSearch(intA[MAX],intn,intk)//mảngcónsốnguyên{ for(inti=0;iĐỘPHỨCTẠP Tốtnhất:T(n)=O(1) Xấunhất:T(n)=O(n) Trungbình:T(n)=O(n) BàitoánYêu cầu: Cho dãy số nguyên a chứa các số đôimộtkhácnhauđãsắpxếptăngdần.Quyướcvịtrícủaphầntửđầutiênlà0.Tìmvịtríxuấthiệncủaphầntửcógiátrịktrongdãyahoặcđưara1nếukhôngcóphầntửnàobằngk.DữliệuvàotừfileTIMKIEM.INPcódạng: Dòngđầulàsốnguyênnvàk DòngthứhaigồmnsốKếtquảrafileTIMKIEM.OUTcódạng:vịtrícủaktrongdãysố.Vídụ:TIMKIEM.INP BàitoánYêu cầu: Cho dãy số nguyên a chứa các số đôimộtkhácnhau đãsắpxếptăngdần.Quy ướcvịtrí của phần tử đầu tiên là 0. Tìm vị trí xuất hiệncủaphầntửcógiátrịktrongdãyahoặcđưara1nếukhôngcóphầntửnàobằngk.DữliệuvàotừfileTIMKIEM.INPcódạng: Dòngđầulàsốnguyênnvàk DòngthứhaigồmnsốKếtquảrafileTIMKIEM.OUTcódạng:vịtrícủaktrongdãysố.Vídụ:TIMKIEM.INPTìmkiếmnhịphân(binarysearch)ÁpdụngtrongtrườnghợpdãyđãđượcsắpxếpÝtưởng:Tìmktạiđiểmgiữacủamảng,nếuchưatìmthấythìthìtìmbêntráihoặcbênphải(nhịphân)củamảng(sovớiđiểmgiữa)k=8 1 2 3 4 8 9 left=0,right=5,mid=2 1 2 3 4 8 9 left=3,right=5,mid=4 Đãtìm Output được 4k=3 1 2 3 4 7 9 10 12 left=0,right=7,mid=3 1 2 3 4 7 9 10 12 left=0,right=2,mid=1 1 2 3 4 7 9 10 12 left=2,right=2,mid=2 Output Đãtìm 2 được Begin Nhậpdãysố, k left=0,right=n–1 leftk mid left=mid+1 right=mid1EndboolBinarySearch(intA[MAX],intn,intk){ inti=0,j=n1,m; while(iA[m])i=m+1; elsej=m1; } returnfalse;}ĐỘPHỨCTẠP Tốtnhất:T(n)=O(1) Xấunhất:T(n)=O(log2n) Trungbình:T(n)=O(log2n)ĐỊNHNGHĨAGIẢITHUẬTSẮPXẾPCácgiảithuậtsắpxếp InsertionSort,SelectionSort,BubbleSort QuickSort,HeapSort,MergeSort CountingSort,BucketSort BàiToánYêucầu: Chodãysốnguyêngồmnphầntử.Hãysắpxếpdãysốtheothứtựtăngdần.DữliệuvàotừfileSAPXEP.INPgồm2dòng:+Dòng1chứasốnguyêndươngn(nChọntrựctiếp(selectionsort) ChọnphầntửnhỏnhấttrongA[i…n]vàhoán vịchophầntửđầutiênA[i] Bắtđầuvớii=1vàlặplạichođếnkhii=n13 5 2 1 7 i=1 k=41 5 2 3 7 i=2 k=31 2 5 3 7 i=3 k=41 2 3 5 7 i=4 k=41 2 3 5 7 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Đỗ Ngọc Như LoanGV:ĐỗNgọcNhưLoanĐịnhnghĩagiảithuậttìmkiếm Input:mộtdãynđốitượng(a1,a2,....,an)và mộtđốitượngk Output:làmộtgiátrịlogictruenếucóktrong dãyhoặcfalsenếungượclại DùngmảnghoặcDSLKđểbiểudiễndãyđối tượng Phầnnàydùngmảngmộtchiều(cácđối tượnglàsố)BàitoánYêu cầu: Cho dãy số nguyên a chứa các số đôimộtkhácnhau.Quy ướcvịtrícủaphầntửđầutiênlà 0. Tìm vị trí xuất hiện của phần tử có giá trị ktrong dãy a hoặc đưa ra 1 nếu không có phần tửnàobằngk.DữliệuvàotừfileTIMKIEM.INPcódạng: Dòngđầulàsốnguyênnvàk DòngthứhaigồmnsốKết quả ra file TIMKIEM.OUT có dạng: vị trí của ktrongdãysố.Vídụ:TIMKIEM.INP68Tìmkiếmtuầntự(Linearsearch)Ýtưởng:Duyệttuầntựtừđầumảng,kếthợpsosánhgiátrịcácphầntửcủamảngvớikđểxácđịnhcóhaykhôngphầntửkk=8 9 2 8 3 1 4 i=0 9 2 8 3 1 4 i=1 9 2 8 3 1 4 i=2 Đãtìm được Output 2boolSearch(intA[MAX],intn,intk)//mảngcónsốnguyên{ for(inti=0;iĐỘPHỨCTẠP Tốtnhất:T(n)=O(1) Xấunhất:T(n)=O(n) Trungbình:T(n)=O(n) BàitoánYêu cầu: Cho dãy số nguyên a chứa các số đôimộtkhácnhauđãsắpxếptăngdần.Quyướcvịtrícủaphầntửđầutiênlà0.Tìmvịtríxuấthiệncủaphầntửcógiátrịktrongdãyahoặcđưara1nếukhôngcóphầntửnàobằngk.DữliệuvàotừfileTIMKIEM.INPcódạng: Dòngđầulàsốnguyênnvàk DòngthứhaigồmnsốKếtquảrafileTIMKIEM.OUTcódạng:vịtrícủaktrongdãysố.Vídụ:TIMKIEM.INP BàitoánYêu cầu: Cho dãy số nguyên a chứa các số đôimộtkhácnhau đãsắpxếptăngdần.Quy ướcvịtrí của phần tử đầu tiên là 0. Tìm vị trí xuất hiệncủaphầntửcógiátrịktrongdãyahoặcđưara1nếukhôngcóphầntửnàobằngk.DữliệuvàotừfileTIMKIEM.INPcódạng: Dòngđầulàsốnguyênnvàk DòngthứhaigồmnsốKếtquảrafileTIMKIEM.OUTcódạng:vịtrícủaktrongdãysố.Vídụ:TIMKIEM.INPTìmkiếmnhịphân(binarysearch)ÁpdụngtrongtrườnghợpdãyđãđượcsắpxếpÝtưởng:Tìmktạiđiểmgiữacủamảng,nếuchưatìmthấythìthìtìmbêntráihoặcbênphải(nhịphân)củamảng(sovớiđiểmgiữa)k=8 1 2 3 4 8 9 left=0,right=5,mid=2 1 2 3 4 8 9 left=3,right=5,mid=4 Đãtìm Output được 4k=3 1 2 3 4 7 9 10 12 left=0,right=7,mid=3 1 2 3 4 7 9 10 12 left=0,right=2,mid=1 1 2 3 4 7 9 10 12 left=2,right=2,mid=2 Output Đãtìm 2 được Begin Nhậpdãysố, k left=0,right=n–1 leftk mid left=mid+1 right=mid1EndboolBinarySearch(intA[MAX],intn,intk){ inti=0,j=n1,m; while(iA[m])i=m+1; elsej=m1; } returnfalse;}ĐỘPHỨCTẠP Tốtnhất:T(n)=O(1) Xấunhất:T(n)=O(log2n) Trungbình:T(n)=O(log2n)ĐỊNHNGHĨAGIẢITHUẬTSẮPXẾPCácgiảithuậtsắpxếp InsertionSort,SelectionSort,BubbleSort QuickSort,HeapSort,MergeSort CountingSort,BucketSort BàiToánYêucầu: Chodãysốnguyêngồmnphầntử.Hãysắpxếpdãysốtheothứtựtăngdần.DữliệuvàotừfileSAPXEP.INPgồm2dòng:+Dòng1chứasốnguyêndươngn(nChọntrựctiếp(selectionsort) ChọnphầntửnhỏnhấttrongA[i…n]vàhoán vịchophầntửđầutiênA[i] Bắtđầuvớii=1vàlặplạichođếnkhii=n13 5 2 1 7 i=1 k=41 5 2 3 7 i=2 k=31 2 5 3 7 i=3 k=41 2 3 5 7 i=4 k=41 2 3 5 7 ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Cấu trúc dữ liệu Cấu trúc dữ liệu Cấu trúc dữ liệu và giải thuật Giải thuật tìm kiếm Giải thuật sắp xếp Tìm kiếm tuần tựTà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 362 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 176 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 172 0 0 -
57 trang 171 1 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 166 0 0 -
3 trang 165 3 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 -
10 trang 145 0 0