KHỞI ĐỘNG
Làm thế nào để cho máy tính biết một dãy đã có thứ tự tăng dần?
Câu trả lời:
Để máy tính biết một dãy đã có thứ tự tăng dần, ta phải sắp xếp theo thứ tự để máy tính có thể nhận dạng.
1. Ý tưởng sắp xếp bằng cách đổi chỗ các phần tử liền kề
Câu hỏi 1. Giả sử có một dãy hộp kẹo, mỗi hộp chứa một số kẹo nào đó. Có một chú robot chỉ biết làm hai thao tác:
- So sánh số kẹo trong hai hộp cạnh nhau.
- Hoán đổi vị trí hai hộp kẹo cạnh nhau.
Theo em, chú robot phải làm thế nào để xếp lại các hộp sao cho số kẹo trong các hộp tăng dần?
Câu trả lời:
Theo em, chú robot phải so sánh lần lượt các hộp kẹo cạnh nhau ở trong dãy, nếu hộp kẹo thứ nhất lớn hơn hộp kẹo thứ hai thì tiến hành hoán đổi vị trí hai hộp kẹo cạnh nhau. Robot cứ thức hiện lần lượt cho đến khi không đổi chỗ các hộp kẹo cạnh nhau nữa thì kết thúc công việc.
2. Thuật toán sắp xếp nổi bọt
Câu hỏi 2. Với dãy số đã cho ở ví dụ trên, em hãy thực hiện thuật toán được mô tả ở hình bên và cho biết đó có phải là thuật toán sắp xếp nổi bọt hay không?
Câu trả lời:
Thuật toán được mô tả như hình trên là thuật toán sắp xếp nổi bọt.
LUYỆN TẬP
Hãy mô phỏng thuật toán sắp xếp nổi bọt cho một dãy số nguyên tùy chọn, không ít hơn 5 phần tử. Sau bao nhiêu lượt đi từ đầu đến cuối dãy để so sánh và đổi chỗ thì thuật toán kết thúc? Tổng số có bao nhiêu lần đổi chỗ hai phần từ liền kề?
Câu trả lời:
Cho dãy số: 15, 1, 31, 9, 78, 42.
- Sau 2 lượt đi từ đầu đến cuối dãy để so sánh và đổi chỗ thì thuật toán kết thúc.
- Có 4 lần đổi chỗ hai phần từ liền kề.
VẬN DỤNG
Bài 1.
1) Trong thuật toán sắp xếp nổi bọt thì dấu hiệu để biết dãy chưa sắp xếp xong là gì?
2) Theo em, có phải hình bên đã mô tả chi tiết một lượt robot thực hiện so sánh các cặp phần tử liền kề và đổi chỗ khi chúng trái thứ tự mong muốn không?
Bài 2. Theo em, vì sao thuật toán sắp xếp trên lại có tên là sắp xếp nổi bọt?
Câu trả lời:
Bài 1.
1) Trong thuật toán sắp xếp nổi bọt thì dấu hiệu để biết dãy chưa sắp xếp xong là: vẫn còn cặp phần tử liền kế không đúng thứ tự mong muốn.
2) Theo em, hình bên mô tả chưa chi tiết một lượt robot thực hiện so sánh các cặp phần tử liền kề và đổi chỗ khi chúng trái thứ tự mong muốn.
Bài 2. Thuật toán sắp xếp trên lại có tên là sắp xếp nổi bọt vì việc sắp xếp theo thứ tự tăng dần và đổi chỗ các phần từ liền kể để phần tử nhỏ nhất được nổi lên vị trí trên cùng giống như hình ảnh các bọt khí nhẹ hơn được nổi lên trên. Vì vậy thuật toán sắp xếp trên có tên là sắp xếp nổi bọt.
TỰ KIỂM TRA
Câu 1. Trong thuật toán sắp xếp nổi bọt, khi nào hai phần tử liền kề được đổi chỗ?
Câu 2. Thuật toán sắp xếp nổi bọt kết thúc khi nào?
Câu 3. Khi nào thực hiện thuật toán sắp xếp nổi bọt chỉ cần một lượt so sánh các cặp phần tử liền kề và đổi chỗ?
Câu trả lời:
Câu 1. Trong thuật toán sắp xếp nổi bọt, hai phần tử liền kề được đổi chỗ khi chúng nằm chưa đúng với thứ tự mong muốn.
Câu 2. Thuật toán sắp xếp nổi bọt kết thúc khi các phần tử đã nằm đúng thứ tự mong muốn trong dãy, không còn bất kì cặp liền kề nào trái thứ tự mong muốn, tức là không còn xảy ra đổi chỗ lần nào nữa.
Câu 3. Thuật toán sắp xếp nổi bọt chỉ cần thực hiện một lượt so sánh các cặp phần tử liền kề và đổi chỗ khi dãy số chỉ có một cặp liền kề nằm trái với thứ tự mong muốn và sau đó không còn bất kì lượt đổi chỗ nào nữa.