trong dãy, nếu số đứng trước lớn hơn số đứng sau ta đổi chổ chúng cho nhau. Việc đó được lặp lại cho đến khi không có sự đổi chổ nào xảy ra nữa.
Trong cuộc sống chúng ta luôn gặp những việc liên quan đến sáp xếp như sắp xếp các học sinh theo thứ tự từ thấp đến cao, sắp xếp điểm TB của các học sinh trong lớp từ cao đến thấp. vv..Câu hỏi thứ 2 trong phần kiểm tra bài cũ là một ví dụ điển hình. Chúng ta cùng nhau xem xét và giải quyết ví dụ này.
Câu hỏi: Hãy xác định dữ liệu vào và ra
của bài toán?
Trả lời:
Input: Dãy A gồm n số nguyên a1, a2, , an Output:Dãy A trở thành dãy không giảm
Câu hỏi: Bằng ngôn ngữ tự nhiên và cách suy nghĩ thông thường em nào cho biết cách sắp xếp dãy số trên?
c)Thuật toán: *Cách liệt kê:
Bước 1: Nhập N và các số hạng a1, a2,...,an Bước 2: m=n
Bước 3: Nếu m<2 ( tức dãy chỉ có 1 số hạng ) thì đưa ra kết quả
Bước 4: Giảm giá trị m một đơn vị (m m -1), i0
Bước 5: ii +1
Bước 6: Nếu i>m ( đã duyệt qua lượt thứ 1) thì quay lại bước 3
Bước7: Nếu ai>ai+1 thì hoán đổi ai cho ai+1 ( GV
đưa ra mô hình để minh hoạ cho trường hợp này)
Bước 8: quay lại bước 5.
*Sơ đồ khối:
Với mỗi cặp số hạng đứng liền kề nhau trong dãy, nếu số hạng trước lớn hơn số hạng sau đổi chổ chúng cho nhau. Việc đó được lặp lại cho đến khi không có sự đổi chổ nào nữa
GV gợi ý bằng một dãy số cụ thể: 4,2,7,7,6.
Trước khi sắp xếp:4,2,7,7,6
Các bước khi sắp xếp bằng thuật toán trao đổi:
4,2,7,7,6 2,4,7,6,7 2,4,6,7,7
Gọi một HS lên bảng vẽ sơ đồ khối của bài toán
HS vẽ sơ đồ khối
GV nhận xét về sơ đồ khối
Gọi học sinh lên chạy thử thuật toán bằng tay với dãy gồm các số sau: