Câu hỏi:
12/07/2024 963Giả 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?
Sách mới 2k7: Tổng ôn Toán, Lí, Hóa, Văn, Sử, Địa…. kỳ thi tốt nghiệp THPT Quốc gia 2025, đánh giá năng lực (chỉ từ 110k).
Quảng cáo
Trả lời:
Ở lượt thứ nhất, so sánh hai hộp đầu tiên, nếu số kẹo ở hộp đúng trước lớn hơn số kẹo ở hộp đứng sau thì đổi vị trí hai hộp này cho nhau. Tiếp tục làm như vậy với hộp thứ hai và thứ ba, với hộp thứ ba và thứ tư, … cho đến hết dãy hộp kẹo là hết một lượt.
Tiếp tục các lượt thứ hai, thứ ba theo cách như lượt thứ nhất, cứ lặp lại như vậy cho đến khi gặp một lượt mà suốt cả lượt đó robot không phải đổi cho hai hộp nào thì dãy đã được sắp xếp xong, robot kết thúc công việc.
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 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 2 đã 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?
Câu 3:
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 4:
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 5:
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 6:
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ổ?
về câu hỏi!