SKKN Hướng dẫn học sinh giải bài toán sắp xếp Tin học 8
- Mã tài liệu: BM8183 Copy
Môn: | Tin học |
Lớp: | 8 |
Bộ sách: | |
Lượt xem: | 1327 |
Lượt tải: | 4 |
Số trang: | 29 |
Tác giả: | Bùi Thị Minh Mai |
Trình độ chuyên môn: | Thạc sĩ giáo dục |
Đơn vị công tác: | Trường THCS Long Anh |
Năm viết: | 2021-2022 |
Số trang: | 29 |
Tác giả: | Bùi Thị Minh Mai |
Trình độ chuyên môn: | Thạc sĩ giáo dục |
Đơn vị công tác: | Trường THCS Long Anh |
Năm viết: | 2021-2022 |
Sáng kiến kinh nghiệm “SKKN Hướng dẫn học sinh giải bài toán sắp xếp Tin học 8” triển khai gồm các biện pháp nổi bật sau:
1. Sắp xếp chọn trực tiếp (Selection Sort)
2. Sắp xếp chèn trực tiếp (Insertion Sort)
3. Sắp xếp nổi bọt (Bubble Sort)
4. Sắp xếp dựa trên phân hoạch – Quick Sort
5. Sắp xếp với bước giảm dần (Shell Sort)
6. Sắp xếp vun đống (Heap Sort)
Mô tả sản phẩm
Phần I. PHẦN MỞ ĐẦU
- ĐẶT VẤN ĐỀ
- Lí do chọn đề tài
Hiện nay trong hầu hết các lĩnh vực hệ lưu trữ, quản lý dữ liệu, thao tác tìm kiếm thường được thực hiện nhiều nhất để khai thác thông tin một cách nhanh chóng và chính xác (ví dụ như: tra cứu từ điển, tìm sách trong thư viện, tra cứu thông tin về nhân viên trong một cơ quan, tra cứu điểm thi của một học sinh trong một trường học,…). Để đạt được mục tiêu tìm kiếm một cách nhanh chóng thì dữ liệu cần phải được sắp xếp sẵn, ngăn nắp, khoa học theo một trật tự, một hệ thống nhất định.
Khi xây dựng một hệ thống quản lý thông tin trên máy tính, bên cạnh các thuật toán tìm kiếm, các thuật toán sắp xếp dữ liệu cũng là một trong các chủ đề được quan tâm hàng đầu.
Trong khi đó, với học sinh bậc THCS, việc lập trình giải quyết các bài toán, đặc biệt là các bài toán sắp xếp còn rất lúng túng, phương pháp còn nghèo nàn, thuật toán còn đơn điệu, điều này dẫn đến việc giải quyết các bài toán sắp xếp còn rất nhiều hạn chế.
Xuất phát từ thực trạng của vấn đề trên, sau một thời gian dài tìm hiểu, nghiên cứu tôi xây dựng chuyên đề: “Hướng dẫn học sinh giải bài toán sắp xếp” với mong muốn mang lại cho các em một cái nhìn tổng thể về bài toán sắp xếp nói chung, các thuật toán sắp xếp nói riêng, từ đó có thể tiếp cận được với các bài toán quản lý thông tin sau này.
- Đối tượng nghiên cứu và phạm vi nghiên cứu
- a) Đối tượng nghiên cứu
– Học sinh lớp 8 trường THCS Trần Cao
- b) Phạm vi nghiên cứu:
Tìm hiểu và vận dụng các lý thuyết cơ bản về một số phương pháp sắp xếp như: phương pháp chọn trực tiếp (Selection Sort), chèn trực tiếp (Insertion Sort), sắp xếp nổi bọt (Bubble Sort), sắp xếp kiểu vun đống (Heap Sort), sắp xếp nhanh (Quick Sort), sắp xếp với độ dài bước giảm dần (Shell Sort),…
Áp dụng đối với:
– Phần: Câu lệnh lặp (xác định); Lặp với số lần chưa biết trước; Làm việc với dãy số; Kiểu dữ liệu mảng.
– Bộ môn Tin học lớp 8.
- PHƯƠNG PHÁP TIẾN HÀNH
Chuyên đề chủ yếu sử dụng các phương pháp nghiên cứu sau:
– Phương pháp nghiên cứu lí luận: Nghiên cứu các vấn đề mang tính lí luận có liên quan đến đề tài (Muốn học tốt lập trình phải có thuật toán tốt, muốn có thuật toán tốt đòi hỏi học sinh phải tiếp cận với nhiều dạng bài toán, nhiều cách giải quyết bài toán,…)
– Phương pháp điều tra: Với phương pháp này tôi tiến hành điều tra học sinh bằng các phiếu trắc nghiệm (chỉ rõ tính đúng, sai của thuật toán, dự đoán kết quả của thuật toán), các bài thực hành trên phòng máy để nắm chắc trình độ nhận thức, kỹ năng thực hành của từng đối tượng học sinh. Trên cơ sở đó làm nền tảng đối chiếu kết quả trước và sau khi thực hiện chuyên đề.
– Phương pháp phỏng vấn: Thông qua việc trao đổi trực tiếp thẳng thắn với học sinh về các biện pháp giúp các em thực hành tốt bộ môn, tôi đã nhận được những mong muốn, những băn khoăn, …, và cả những ý kiến đóng góp của các em. Cũng từ đây tôi hình thành nên các giải pháp cho chuyên đề.
– Phương pháp tạo tình huống: Thông qua các bài tập tạo tình huống, các bài tập có tính chất minh chứng tôi dần dần dẫn các em vào vấn đề và hướng dẫn các em tìm cách giải quyết.
– Phương pháp quan sát, đánh giá, tổng hợp: Thông qua quá trình quan sát học sinh thực hành, đánh giá, tổng hợp kết quả thực hành giúp tôi có giải pháp để thực hiện và điều chỉnh chuyên đề của mình cho phù hợp và có hiệu quả nhất.
Phần II. NỘI DUNG
- MỤC TIÊU CỦA ĐỀ TÀI
– Trình bày được ý tưởng, thuật giải (thuật toán) của một số phương pháp sắp xếp thông dụng.
– Giới thiệu được Code diễn đạt thuật giải.
– Mô tả được thuật toán của phương pháp bằng ví dụ cụ thể.
- CÁC GIẢI PHÁP THỰC HIỆN
Một số thuật toán sắp xếp:
- Sắp xếp chọn trực tiếp (Selection Sort)
- Sắp xếp chèn trực tiếp (Insertion Sort)
- Sắp xếp nổi bọt (Bubble Sort)
- Sắp xếp phân hoạch (Quick Sort)
- Sắp xếp với bước giảm dần (Shell Sort)
- Sắp xếp vun đống (Heap Sort)
- Sắp xếp chọn trực tiếp (Selection Sort)
❖ Ý tưởng:
– Chọn phần tử nhỏ nhất trong n phần tử đầu, đưa phần tử này về vị trí đầu của dãy. Tiếp tục quá trình với n-1 phần tử còn lại và bắt đầu từ vị trí thứ 2. Lặp lại quá trình trên cho dãy gồm n-1 phần tử còn lại.
– Thuật toán thực hiện n-1 lần để lần lượt đưa phần tử nhỏ nhất trong dãy hiện hành về vị trí dẫn đầu.
❖ Thuật toán:
Đầu vào:
n – số phần tử mảng
a – mảng chứa các phần tử bất kỳ
Đầu ra:
a- mảng đã được sắp xếp tăng dần
Bước 1: i = 0
Bước 2: Tìm phần tử a[min] nhỏ nhất trong dãy hiện hành từ a[i] đến a[n-1]
Bước 3: Hoán vị a[i] với a[min]
Bước 4:
- nếu i<n-1 thì i = i+1 và lặp lại bước 2
- ngược lại thì n-1 phần tử đã được sắp xếp => Dừng thuật toán
❖ Cài đặt (code):
…
Type mang:array[1..20] of integer;
Function SelectionSort(a:mang, n:integer): integer;
Var i, j, vtmin, tam: integer;
Begin
Writeln(‘——SAP XEP CHON TRUC TIEP——’);
For i≔1 to n-1 do
Begin
Vtmin≔i;
For j≔i+1 to n do
If a[vtmin]>a[j] then vtmin≔j;
{Hoan doi vi tri cua a[i] va a[vtmin]}
Tam≔a[i];
A[i]≔a[vtmin];
A[vtmin]≔tam;
End;
Writeln(‘Day so sau khi sap xep la:’);
For i≔1 to n do Write(a[i],’ ’);
End;
TÀI LIỆU LIÊN QUAN
- 5
- 105
- 1
- [product_views]
- 8
- 102
- 2
- [product_views]
- 3
- 145
- 3
- [product_views]
- 0
- 166
- 4
- [product_views]
- 0
- 152
- 5
- [product_views]
- 6
- 184
- 6
- [product_views]
- 0
- 185
- 7
- [product_views]
- 6
- 174
- 8
- [product_views]
- 2
- 116
- 9
- [product_views]
- 0
- 154
- 10
- [product_views]