SKKN phương pháp chia để trị để giải quyết bài toán sắp xếp và tìm kiếm nâng cao trong quá trình bồi dưỡng học sinh giỏi môn lập trình pascal bậc THCS

32 86 0
SKKN phương pháp chia để trị để giải quyết bài toán sắp xếp và tìm kiếm nâng cao trong quá trình bồi dưỡng học sinh giỏi môn lập trình pascal bậc THCS

Đ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

I PHẦN MỞ ĐẦU Lý chọn đề tài Trong sống công việc ngày, gặp vấn đề cần phải đưa hướng giải Ngay từ lúc ngồi ghế nhà trường ta luyện tập giải vấn đề qua mơn tốn học thơng qua tập hợp hữu hạn hay dãy quy tắc chặt chẽ thị, phương cách hay trình tự thao tác đối tượng cụ thể xác định định nghĩa rõ ràng cho việc hoàn tất số việc từ trạng thái ban đầu cho trước; thị áp dụng triệt để dẫn đến kết sau dự đoán trước Như tốn dùng nhiều thuật tốn để giải quyết, vấn đề chọn thuật toán hay phương pháp phù hợp với kiểu để đạt hiệu cao (Quá trình xác định liệu Input sau thực dãy thao tác ta thu kết Output cần tìm gọi Thuật tốn) Trong chương trình Tin học bậc THCS nói riêng chương trình tin học chun sâu nói chung (bồi dưỡng học sinh giỏi) có số thuật toán để giải lớp toán định như: thuật tốn Sắp xếp, tìm kiếm, số phương pháp thiết kế thuật toán như: Chia để trị, tham lam, quy hoạch động, cao phương pháp nhị phân, Từ thực tế giảng dạy tham gia tuyển chọn bồi dưỡng học sinh giỏi mơn lập trình Pascal bậc THCS thân tơi nhận thấy việc nắm vững thuật toán áp dụng cách linh hoạt tập định khơng đơn giản Sắp xếp tìm kiếm hai toán quen thuộc, nhiều học sinh cài đặt chương trình xếp hay tìm kiếm cách dễ dàng Tuy nhiên để nhận dạng tốn thực với thuật tốn khơng phải dễ, ngồi để cài đặt thuật toán hiệu đòi hỏi người lập trình nắm vững phương pháp thiết kế thuật giải Trong thiết kế thuật giải Chia để trị (Divide and Conquer) phương pháp quen thuộc sử dụng để giải nhiều tốn Chúng ta áp dụng phương pháp tốn xếp tìm kiếm Với tư tưởng chia để trị cải thiện đáng kể độ phức tạp thuật toán tốn xếp tìm kiếm Tư tưởng chia để trị xếp tìm kiếm viết nhiều tài kiệu khác nhau, đề tài tập trung đưa số dạng tập từ phổ biến từ đến khó áp dụng phương pháp phân tích tính hiệu tốn Vì tơi chọn đề tài: “ Phương pháp chia để trị để giải toán xếp tìm kiếm nâng cao trình bồi dưỡng học sinh giỏi mơn lập trình Pascal bậc THCS” Mục tiêu nhiệm vụ đề tài Trong phạm vi đề tài tơi muốn nghiên cứu số phương pháp phương pháp hiệu việc giải toán tin học nhằm giúp học sinh hình thành kỹ giải toán tin học rèn luyện tư thuật tốn từ rèn luyện tư lập trình Cũng qua đề tài, muốn đồng nghiệp trao đổi, trau dồi chun mơn nhằm góp phần nâng cao trình độ chun mơn nghiệp vụ khả mở rộng kiến thức Với thân nghiên cứu đề tài sáng kiến kinh nghiệm hội tốt để nghiên cứu khoa học làm quen với phương pháp làm khoa học phạm vi hẹp hy vọng với nổ lực thân giúp đỡ đồng nghiệp có đề tài khoa học tốt, lý thú hiệu Giáo viên hoàn thành nội dung đề tài định hướng cho học sinh thực đề tài q trình ơn tập luyện thi học sinh giỏi Báo cáo thành chuyên đề lần họp tổ, cụm chuyên môn để đồng nghiệp bổ sung thiếu sót đề tài Học sinh hướng dẫn giáo viên nghiêm túc nghiên cứu đề tài có định hướng phát triển khả lập trình thân, đồng thời áp dụng lồng ghép với nguyên lý 5R để giải quyết triệt để yêu cầu sau: Retain – Giữ lại Reuse – Sử dụng lại Revise – Làm lại Remix – Pha trộn Redistribute – Phân phối lại Tạo sở hữu phương pháp Biến đổi lại theo nhiều cách khác Học sinh tùy biến, sửa đổi cho phù hợp với tốn muốn giải Học sinh sử dụng hay nhiều phương pháp để kết hợp lại thành phương pháp Học sinh chia sẻ lại cho người khác Đối tượng nghiên cứu: Đề tài áp dụng học sinh giỏi với nhiệm vụ chủ yếu ôn thi học sinh giỏi bồi dưỡng kiến thức cho học sinh yêu thích mơn tin Giới hạn phạm vi nghiên cứu: Phạm vi nghiên cứu thực học sinh lớp 8, tham gia bồi dưỡng học sinh giỏi Phương pháp nghiên cứu Để hoàn thành đề tài này, tiến hành áp dụng số phương pháp nghiên cứu sau: - Phương pháp đặt vấn đề - giải vấn đề - Phương pháp phân tích tổng hợp - Phương pháp so sánh đối chiếu - Phương pháp thực nghiệm - Phương pháp 5R II PHẦN NỘI DUNG Cơ sở lý luận phương pháp Chia để trị (Divide and Conquer): Chia để trị tư tưởng phổ biến sống áp dụng hiệu Tin học Tư tưởng phương pháp chia để trị là: Người ta phân toán thành toán con, toán lại tiếp tục phân thành toán nhỏ hơn, tiếp tục ta nhận tốn có thuật giải dễ dàng đưa thuật giải Sau kết hợp nghiệm toán để nhận nghiệm toán lớn để cuối nhận nghiệm tốn cần giải Thơng thường toán phân chia dạng với tốn ban đầu có cỡ chúng nhỏ Thực trạng vấn đề Thực tế qua nhiều năm trực tiếp giảng dạy môn Tin học, tham gia bồi dưỡng đội tuyển học sinh giỏi thị xã trao đổi với đồng nghiệp nhận thấy: Hầu học sinh yêu thích hứng thú với môn Tin học Tuy nhiên, chất lượng giảng dạy môn qua năm học chưa cao, đặc biệt kĩ lập trình máy học sinh yếu, chí số học sinh ngại học lập trình Pascal việc sử dụng máy tính để rèn luyện trau đơi kĩ cho Nội dung, biện pháp giải vấn đề tốn tìm kiếm xếp mơn ngơn ngữ lập trình Pascal a) Mục tiêu việc Chia đề trị (Divide and Conquer) Phương pháp Chia để trị phương pháp áp dụng cho tốn giải cách chia nhỏ thành toán từ việc giải tốn Sau lời giải toán nhỏ tổng hợp lại thành lời giải cho tốn ban đầu Mơ hình Phương pháp chia để trị minh họa sau: Các tốn giải phương pháp chia để trị thông qua bước sau: - Bước 1: Chia/Tách nhỏ:Tại bước toán ban đầu chia thành tốn khơng thể chia nhỏ Các toán kiểu trở thành bước nhỏ việc giải toán lớn - Bước 2: Trị/Giải toán con: Tại bước ta phải tìm phương án để giải cho toán cách cụ thể - Bước 3: Kết hợp lời giải lại để suy lời giải: Khi giải xong toán nhỏ, lặp lại bước giải kết hợp lại lời giải để suy kết cần tìm (có thể dạng đệ quy) Thuật tốn chia để trị biểu diễn mơ hình đệ quy sau: Procedure DivideConquer(A,x); //Tìm nghiệm x toán A Begin If (A đủ nhỏ) then Solve(A) Else Begin Phân A thành toán A1, , Am; For i:=1 to m DivideConquer(Ai,xi); Kết hợp nghiệm xi toán Ai để nghiệm toán A; End; End; Chúng ta nghiên cứu toán tháp Hà Nội, toán điển hình giải phương pháp chia để trị để thấy rõ tư tưởng phương pháp Ví dụ Bài tốn Tháp Hà Nội Có N đĩa có đường kính khác đặt chồng lên theo thứ tự giảm dần đường kính tính từ lên Có ba vị trí đặt đĩa đánh số 1, 2, Chồng đĩa ban đầu đặt vị trí 1: Cần chuyển chồng đĩa từ vị trí sang vị trí 2, theo quy tắc sau: • Khi di chuyển đĩa, phải đặt vào ba vị trí cho • Mỗi lần chuyển đĩa phải đĩa • Tại vị trí, đĩa chuyển đến phải đặt lên Đĩa lớn không phép đặt lên đĩa nhỏ (hay nói cách khác: đĩa đặt mặt đất đặt đĩa lớn hơn) Bài tốn có nguồn gốc truyền thuyết Ấn độ có nhóm cao tăng Ấn độ giáo giao trọng trách chuyển dần 64 đĩa vàng cọc kim cương theo điều kiện nói phần Khi hồn tất cơng việc, tức chuyển xong toàn 64 đĩa từ vị trí ban đầu sang vị trí kết thúc thời điểm tận Chúng ta giải toán cách chia toán chuyển N đĩa, từ vị trí sang vị trí thành ba toán đơn giản sau: - Chuyển N-1 đĩa từ vị trí sang vị trí 3, dùng vị trí làm trung gian - Chuyển đĩa thứ N từ vị trí sang vị trí - Chuyển N-1 đĩa từ vị trí sang vị trí 2, dùng vị trí làm trung gian Chú ý toán tương tự tốn ban đầu, khác kích thước nhỏ Chúng giải phương pháp “chia để trị” giống toán ban đầu Dễ dàng kiểm tra giải chúng thoả mãn điều kiện Bài tốn giải đơn giản Thuật toán viết dạng giả mã sau: Procedure ThapHanoi; Begin Move(n,1,2,3); end; Procedure Move(n,a,b,c); {chuyển n đĩa, từ vị trí a sang vị trí b, dùng vị trí c làm trung gian } begin if n=0 then exit; Move(n-1,a,c,b); writeln('Chuyển đĩa ',n, ' từ vị trí ',a, 'sang vi tri ',b); Move(n-1,c,b,a); end; Chương trình Pascal: Program ThapHaNoi; var n:integer; procedure move(n,a,b,c:integer); begin if n=0 then exit; move(n-1,a,c,b); writeln('Chuyen dia ',n,' tu vi tri ',a,' sang vi tri ',b); move(n-1,c,b,a); end; begin write('Nhap N = ');readln(n); move(n,1,2,3); readln end Chúng ta dừng lại chút để phân tích độ phức tạp tính tốn Gọi T(n) số thao tác chuyển đĩa cần thiết để chuyển xong n đĩa Theo thuật tốn ta có: T(n) = T(n-1) + + T(n-1) Bằng phương pháp giải công thức truy hồi ta có T(n) = n-1 Áp dụng kết với giả thiết cao tăng phải giây để chuyển xong đĩa từ cọc sang cọc kia, ta thấy thời gian để chuyển toàn 64 đĩa vàng T(64)=216-1=18446744073709551615 giây Như ngày tận (nếu có) theo truyền thuyết phải 600 tỉ năm đến b) Cách thức thực phương pháp Chia để trị toán xếp tìm kiếm - Bài tốn xếp Bài toán: Cho dãy A gồm N số nguyên Sắp xếp dãy A thành dãy khơng giảm Bài tốn xếp tốn quen thuộc có nhiều thuật tốn để giải toán Các thuật toán Sắp xếp bọt (Bubble Sort) hay chèn trực tiếp (Insertion Sort) có độ phức tạp cỡ O(n 2) Thuật tốn xếp nhanh (Quick Sort) hay xếp trộn (Merge Sort) hai thuật toán xếp theo tư tưởng chia để trị 0Với tư tưởng chia để trị, Quick Sort Merge Sort cho ta độ phức tạp nhỏ thường O(nlogn) Trong đề tài tập trung nghiên cứu thuật toán QuickSort Chúng ta xét thuật toán xếp nhanh (Quick Sort) Ý tưởng: Tư tưởng thuật toán chia để trị, ta tìm cách chia đơi dãy ban đầu cách chọn phần tử chốt (pivot) Từ dãy ban đầu, tất phần tử nhỏ phần tử chốt đưa bên trái dãy; phần tử lớn chốt đưa bên phải dãy Sau bước ta có phần tử chốt đứng vị trí Dãy ban đầu chia thành hai dãy nằm hai bên chốt Tiếp tục phân chia dãy theo cách tương tự dãy có độ dài Có thể chọn phần tử chốt nằm đầu, cuối, dãy chọn ngẫu nhiên phần tử dãy Giải thuật: Trường hợp sau chọn chốt phần tử dãy Sắp xếp đoạn X[L] X[R] với điều kiện L n; - Đưa max Chương trình: {$OBJECT FPC} const nmax=1000; Type mang=array[1 nmax] of integer; var a:mang; n,i:integer; procedure enter; var i:longint;f:text; begin assign(f,'TC.inp');reset(f); readln(f,n); for i:=1 to n readln(f,a[i]); close(f); 20 end; procedure quicksort(l,h:integer); var i,j,key,tg:integer; begin i:=l; j:=h; key:=a[(l+h) div 2]; repeat while a[i]key dec(j); if ij; if j>l then quicksort(l,j); if i K dãy xếp nên việc tìm kiếm thực dãy từ A1 đến AGiữa-1 phạm vi tìm kiếm khoảng nửa phạm vi tìm kiếm trước - Nếu AGiữa < K thực tìm kiếm dãy từ AGiữa+1 đến AN Quá trình tìm kiếm kết thúc tìm thấy khóa K dãy A phạm vi tìm kiếm rỗng Thuật tốn: Bước 1: Nhập N số hạng A1 AN khóa K; Bước 2: First=1; Last=N; Bước 3: Mid=[(First+Last)/2]; Bước 4: Nếu AMid=K thơng báo số Mid kết thúc; Bước 5: Nếu AMid>K Last=Mid-1, chuyển đến bước 7; Bước 6: First=Mid+1; Bước 7: Nếu First>Last thơng báo dãy A khơng có số hạng K kết thúc; Bước 8: Quay lại bước Thuật tốn tìm kiếm nhị phân có tư tưởng gần giống với thuật tốn xếp nhanh Nó thực việc tìm vị trí trung tâm, thơng qua phép so sánh giá trị cần tìm với giá trị vị trí trung tâm để định vùng liệu (trước hay sau vị trí trung tâm) mà giá trị thuộc Việc tìm kiếm tiếp tục 1/2 tập hợp liệu vừa xác định với cách thức tìm kiếm, giá trị vị trí trung tâm giá trị cần tìm phạm vi tìm kiếm rỗng dừng Vì sau bước tìm kiếm miền 22 liệu lại giảm phân nữa, số lượng bước tìm kiếm tăng dần tới tối đa log2(N) Vì độ phức tạp thuật toán xem O(logN) Chúng ta xem cách cài đặt thuật toán thơng qua ví dụ sau: Bài tốn áp dụng: Bài Cho dãy gồm N số nguyên dương, xác định xem có tồn hay khơng dãy liên tiếp có tổng K hay khơng? Với tốn ta thực cách duyệt tất dãy có từ dãy N phần tử thực tính tổng dãy so sánh với K Giải thuật thực sau: For i:=1 to N Begin S:=0; For j:=i to N S:=S+A[j]; If s=k then begin write(‘tim thay’);break; end; End; Thuật toán cho ta độ phức tạp cỡ O(n 2) Ta cải tiến thuật toán nhận cách sau: - Tạo dãy S Si=A1+ +Ai; - Nhận thấy dãy A gồm số nguyên dương nên dãy S tăng dần - Để xác định đoạn [Ai,Aj] có tổng phần tử K hay không ta thực tìm kiếm nhị phân đoạn từ vị trí i đến vị trí j dãy S mà Sj-Si=K Giải thuật sau: Bước Tạo dãy S từ dãy A: S[0]:=0; Với i nhận giá trị từ đến n làm S[i]:=S[i-1]+A[i]; Bước Res=-1; {Res dùng để đánh dấu vị trí cuối dãy cần tìm} Bước Với i nhận giá trị từ đến N làm: 3.1 Cho first:=i; last:=n; 3.2 chừng firstk last:=mid-1; 23 first:=mid+1; 3.3 Nếu Res-1 đưa dãy cần tìm dãy A i+1 đến ARes Và kết thúc Bước Đưa kết luận không tìm thấy kết thúc Chương trình: {$OBJECT FPC} const nmax=100000; var n,k:longint; a:array[1 nmax]of longint; s:array[0 nmax]of longint; procedure enter; var i:longint; Begin write('n= '); readln(n); write('k= '); readln(k); fillchar(s,sizeof(s),0); for i:=1 to n begin write('a[',i,']= '); readln(a[i]); s[i]:=s[i-1]+a[i]; end; end; procedure main; var first,mid,last,i,res,id:longint; begin res:=-1; for i:=0 to n-1 begin first:=i; last:=n; while firstk then 24 last:=mid-1 else first:=mid+1; end; if res-1 then begin write('day la: ',i+1,' ',res); break; end; end; end; BEGIN enter; main; readln END Đánh giá độ phức tạp thuật toán: Ta thấy thời gian thực thuật toán tổng thời gian thực chương trình Enter (cỡ O(n)) chương trình main; Do việc tìm số res thực nửa dãy A i đến An (với i= đến n) nên chương trình main có độ phức tạp cỡ O(nlogn) Vậy thuật toán giải toán có độ phức tạp cỡ O(nlogn) Thuật tốn cải tiến để có độ phức tạp cỡ O(n) xem xét vấn đề chuyên đề khác Nhưng với tư tưởng chia để trị thuật tốn tìm kiếm nhị phân thấy độ phức tạp thuật toán cải thiện phần Bài tốn tìm kiếm nhị phân có đầu vào dãy xếp nên số tập có kế thừa từ thuật tốn xếp Trong lập trình ta gặp toán cần thực thao tác chèn xóa phần tử khơng thõa mãn khỏi dãy cho Chúng ta tìm hiểu kỹ thuật chèn phần tử vào dãy xóa phần tử khỏi dãy qua tập sau: Bài 2: Cho dãy A gồm N số nguyên a 1, ,an xếp theo thứ tự khơng giảm khóa K Hãy chèn khóa K vào dãy A cho dãy đảm bảo thứ tự không giảm Ý tưởng: Ta cần xác định vị trí vt để chèn khóa K Thực tìm kiếm nhị phân dãy A để tìm vị trí vt thõa mãn a vtK Đẩy phần tử từ vt đến n lùi xuống vị trí Đặt a vt=K Tăng n lên đơn vị Chương trình {$OBJECT FPC} program chen; 25 const nmax=100001; var a:array[1 nmax]of longint; n,k,vt,i:longint; procedure enter; var i:longint; begin write('n,k '); readln(n,k); //nhap day tang dan for i:=1 to n begin write('a[',i,']= '); readln(a[i]); end; end; procedure main; var first,mid,last,i:longint; begin first:=1; last:=n; if Ka[n] then vt:=n+1 else while firsttrunc(sqrt(x))); end; procedure Main; 27 var first,mid,last,vt,i:longint; begin first:=1; last:=j; while firstK then first:=mid+1 else last:=mid-1; end; for i:=vt to j a[i]:=a[i+1]; dec(j); end; BEGIN write('nhap n,k: ');readln(n,k); j:=0; for i:=1 to n if nt(i) then begin inc(j);a[j]:=i;end; Writeln('Day so nguyen to la: '); For i:=1 to j write(a[i],' '); writeln; main; writeln(vt); Writeln('Day nguyen to sau xoa ',K,' la: '); For i:=1 to j write(A[i],' '); readln END c) Kết thực nghiệm trình vận dụng phương pháp chia để trị q trình giải tốn tìm kiếm xếp Sau nghiên cứu qua q trình trải nghiệm tơi nhận thấy đạt hiệu đáng khích lệ Số lượng học sinh vận dụng có hiệu phương pháp chia để trị q trình giải tốn tìm kiếm, xếp năm tăng lên Tiết dạy trở nên nhẹ nhàng hiệu hơn, tạo nhiều hứng thú 28 cho học sinh q trình ơn luyện học sinh giỏi cho đội tuyển thị xã hàng năm Dưới bảng thống kê chất lượng học sinh giỏi vừa qua: Số lượng học sinh Mức độ áp dụng thành Năm học Ghi tham gia đội tuyển tạo vào toán 2017 - 2018 90% 2018- 2019 97% 2019 - 2020 98% 29 KẾT LUẬN VÀ KIẾN NGHỊ Qua phần thấy phần hiệu phương pháp chia để trị Chúng ta thấy tính thuật tốn thể hiện: Chia để trị sử dụng kĩ thuật đệ quy, thông thường đệ quy nhiều nhánh; Tính thuật tốn Chia để trị chứng minh giải thuật đệ quy (sử dụng quy nạp) sử dụng bất biến vòng lặp Trong giới hạn đề tài không đề cập vấn đề Một số vấn đề cần lưu ý sử dụng phương pháp Chia để trị là: - Lời gọi đệ qui nhiều tốn, nhiều lần dẫn tới tượng tràn vùng nhớ đệm - Cần có chiến lược phân rã hợp lý miền liệu để đảm bảo thuật giải tốt - Hạn chế thường gặp thuật toán Chia để trị: Việc phân rã dẫn tới số tốn trùng Sắp xếp tìm kiếm hai toán thường gặp, toán có nhiều phương pháp giải khác Khơng thể thơng qua số ví dụ cụ thể mà đánh giá thuật toán tốt thuật toán mặt Việc chọn thuật tốn thích hợp cho phù hợp với yêu cầu, điều kiện cụ thể kỹ người lập trình QuickSort MergeSort thuật toán xếp tổng quát, dãy khóa thuộc kiểu liệu có thứ tự áp dụng khơng thiết phải số Tuy phương pháp có số trường hợp suy biến nhiên điểm nhỏ so với ưu điểm chung chúng nhanh Tìm kiếm nhị phân thực dãy xếp Nhưng điều kiện đầu vào thõa mãn biến đổi đầu vào cách hợp lý việc tìm kiếm thực nhanh Những thuật tốn khơng đơn cho ta tìm hiểu thêm cách giải toán, mà cách cài đặt chúng cho ta thêm nhiều kinh nghiệm kỹ thuật lập trình như: Chèn, xóa phần tử dãy; "Chia để trị" hiệu số tốn cụ thể Trong q trình giảng dạy thân nhận thấy việc tự nghiên cứu công việc quan trọng Thực đề tài làm sáng kiến kinh nghiệm hội học tập tốt cho thân.Trong trình thực thực nghiệm giúp thân nhận nhiều kiến thức, kinh nghiệm phục vụ qúa trình giảng dạy học tập Trong đề tài 30 tơi cố gắng đưa số dạng tập thường gặp sử dụng thuật toán xếp tìm kiếm theo tư tưởng chia để trị mong giúp ích cho giáo viên học sinh trình giảng dạy học tập trình bồi dưỡng học sinh giỏi tham gia cấp sau Do thời gian có hạn nên nội dung đề tài chắn nhiều thiếu sót, mong nhận phản hồi góp ý từ đồng nghiệp để hoàn thiện áp dụng đề tài vào giảng dạy Thiện An, ngày 05 tháng năm 2020 NGƯỜI VIẾT SÁNG KIẾN Phan Văn Phú NHẬN XÉT CỦA CƠ QUAN, ĐƠN VỊ ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… 31 TÀI LIỆU THAM KHẢO Tài liệu giáo khoa chuyên tin – Tác giả Hồ Sĩ Đàm (Chủ biên) – Đỗ Đức Đông – Lê Minh Hoàng – Nguyễn Thanh Tùng Nhà xuất Giáo dục Việt Nam 2009 Giải thuật lập trình Tác giả Lê Minh Hoàng; Nhà xuất Đại học Sư phạm Hà Nội 2002 Đề thi Học sinh giỏi tỉnh, Đề thi chọn dự tuyển Quốc gia số tỉnh từ năm 2016 – 2019 Tài nguyên Giáo dục mở Tiến sĩ Lê Trung Nghĩa Tài nguyên giáo dục mở giáo dục Online Tài liệu biên soạn bồi dưỡng học sinh giỏi môn tin học thị xã từ năm 2016 – 2020 32 ... thực phương pháp Chia để trị toán xếp tìm kiếm - Bài tốn xếp Bài toán: Cho dãy A gồm N số nguyên Sắp xếp dãy A thành dãy khơng giảm Bài tốn xếp tốn quen thuộc có nhiều thuật toán để giải toán. .. ngơn ngữ lập trình Pascal a) Mục tiêu việc Chia đề trị (Divide and Conquer) Phương pháp Chia để trị phương pháp áp dụng cho tốn giải cách chia nhỏ thành toán từ việc giải toán Sau lời giải tốn... nghiệm trình vận dụng phương pháp chia để trị trình giải tốn tìm kiếm xếp Sau nghiên cứu qua trình trải nghiệm nhận thấy đạt hiệu đáng khích lệ Số lượng học sinh vận dụng có hiệu phương pháp chia để

Ngày đăng: 11/06/2020, 10:50

Từ khóa liên quan

Mục lục

  • I. PHẦN MỞ ĐẦU

  • 1. Lý do chọn đề tài

  • - Bài toán sắp xếp

Tài liệu cùng người dùng

Tài liệu liên quan