btvn.vn
Tìm kiếm Đăng nhập

Sắp xếp nổi bọt

Lưu trên thiết bị này
Thuật toán tìm kiếm và sắp xếp · Chọn bài khác

So sánh hai phần tử đứng cạnh nhau

Trong cách sắp xếp nổi bọt đang học, ta sắp dãy **tăng dần**. Mỗi vòng xét các cặp liền kề **từ cuối dãy trở về đầu phần chưa sắp**. Nếu số phía sau nhỏ hơn số phía trước thì hoán đổi; nếu đã đúng thứ tự hoặc bằng nhau thì giữ nguyên. Sau vòng đầu, số nhỏ nhất được đưa về vị trí đầu. Vòng tiếp theo không cần xét lại vị trí đã đúng đó; tiếp tục đưa số nhỏ nhất của phần còn lại về vị trí thứ hai. Làm tương tự đến vị trí trước cuối. Đây là chiều duyệt dùng trong bài này. Cần đọc rõ chiều so sánh trước khi mô phỏng, vì một cách duyệt khác có thể cho dãy trung gian khác dù cùng kết quả sắp xếp cuối.

Bài luyện

Với dãy 9, 4, 7, 2, 6, cặp nào được so sánh đầu tiên theo cách nổi bọt của bài?
Chọn một đáp án

Theo dõi vòng thứ nhất

Bắt đầu với dãy 9, 4, 7, 2, 6. Sau mỗi lần so sánh, phải dùng dãy vừa nhận được cho lần tiếp theo: | Cặp vị trí | So sánh | Dãy sau bước này | |---|---|---| | 4 và 5 | 6 không nhỏ hơn 2: giữ | 9, 4, 7, 2, 6 | | 3 và 4 | 2 nhỏ hơn 7: đổi | 9, 4, 2, 7, 6 | | 2 và 3 | 2 nhỏ hơn 4: đổi | 9, 2, 4, 7, 6 | | 1 và 2 | 2 nhỏ hơn 9: đổi | 2, 9, 4, 7, 6 | Cuối vòng, 2 đã ở đầu. Phần còn lại 9, 4, 7, 6 chưa được coi là đã sắp xếp. Không kết thúc cả thuật toán chỉ vì một số đã về đúng chỗ.

Bài luyện

Sau vòng thứ nhất của ví dụ, dãy nào đúng?
Chọn một đáp án

Hoàn tất các vòng còn lại

Tiếp tục từ kết quả vòng đầu, luôn so sánh các cặp liền kề từ cuối về đầu phần chưa sắp: | Sau vòng | Dãy | |---|---| | 1 | 2, 9, 4, 7, 6 | | 2 | 2, 4, 9, 6, 7 | | 3 | 2, 4, 6, 9, 7 | | 4 | 2, 4, 6, 7, 9 | Thực hành bằng năm thẻ số và ghi lại từng lần đổi chỗ. Ở vòng 2 chỉ xét từ cặp vị trí 4–5 đến cặp 2–3, vì vị trí 1 đã đúng. Kết quả cuối phải tăng dần và vẫn có đủ năm giá trị ban đầu, mỗi giá trị giữ đúng số lần xuất hiện. Nếu cần sắp giảm dần bằng cùng chiều duyệt, đổi điều kiện: hoán đổi khi số phía sau **lớn hơn** số phía trước. Khi đó số lớn nhất của phần chưa sắp được đưa về đầu phần ấy.

Bài luyện

Vì sao vòng 2 không cần so sánh lại cặp vị trí 1–2?
Chọn một đáp án

Bài luyện

Khi so sánh hai số liền kề bằng nhau để sắp tăng dần, cách làm của bài thực hiện gì?
Chọn một đáp án

Bài luyện

Giữ chiều duyệt từ cuối về đầu nhưng muốn sắp giảm dần. Khi nào hoán đổi hai phần tử liền kề?
Chọn một đáp án

Đang học