TopStudy

Tin học · Lớp 7

Bài tập Thực hành mô phỏng các thuật toán tìm kiếm, sắp xếp có đáp án

5 câu · 10 phút · Ngân hàng đề TopStudy. Đáp án và lời giải do TopStudy biên soạn, mở ngay dưới từng câu.

Làm bài

Nội dung đề

Phần I. Tự luận

Câu 1

1 điểm

Cho dãy số ban đầu

Hình minh hoạ

Hãy mô phỏng thuật toán tìm kiếm tuần tự một số trong dãy số bằng cách trình bày diễn biến các bước thực hiện dưới dạng bảng.

1) Tìm x = 5.

2) Tìm x = 6.

Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

1) Đối với bài này ta sẽ sử dụng thuật toán tìm kiếm tuần tự để trình bày.

Bước 1. So sánh số ở đầu dãy với x. Vì a1_{1} = 8 khác x nên chuyển sang xét số tiếp theo a2_{2} trong dãy.

Bước 2. So sánh số ở đầu dãy với x. Vì a2_{2} = 17 khác x nên chuyển sang xét số tiếp theo a3_{3} trong dãy.

Bước 3. So sánh số ở đầu dãy với x. Vì a3_{3} = 23 khác x nên chuyển sang xét số tiếp theo a4_{4} trong dãy.

Bước 4. So sánh số ở đầu dãy với x. Vì a4_{4} = 1 khác x nên chuyển sang xét số tiếp theo a5_{5} trong dãy.

Bước 5. So sánh số ở đầu dãy với x. Vì a5_{5} = 12 khác x nên chuyển sang xét số tiếp theo a6_{6} trong dãy.

Bước 6. So sánh số ở đầu dãy với x. Vì a6_{6} = 7 khác x nên chuyển sang xét số tiếp theo a7_{7} trong dãy.

Bước 7. So sánh số ở đầu dãy với x. Vì a7_{7} = 5 bằng x. Kết luận tìm thấy x ở vị trí thứ 7 trong dãy, kết thúc thuật toán.

2) Đối với bài này ta sẽ sử dụng thuật toán tìm kiếm tuần tự để trình bày.

Bước 1. So sánh số ở đầu dãy với x. Vì a1_{1} = 8 khác x nên chuyển sang xét số tiếp theo a2_{2} trong dãy.

Bước 2. So sánh số ở đầu dãy với x. Vì a2_{2} = 17 khác x nên chuyển sang xét số tiếp theo a3_{3} trong dãy.

Bước 3. So sánh số ở đầu dãy với x. Vì a3_{3} = 23 khác x nên chuyển sang xét số tiếp theo a4_{4} trong dãy.

Bước 4. So sánh số ở đầu dãy với x. Vì a4_{4} = 1 khác x nên chuyển sang xét số tiếp theo a5_{5} trong dãy.

Bước 5. So sánh số ở đầu dãy với x. Vì a5_{5} = 12 khác x nên chuyển sang xét số tiếp theo a6_{6} trong dãy.

Bước 6. So sánh số ở đầu dãy với x. Vì a6_{6} = 7 khác x nên chuyển sang xét số tiếp theo a7_{7} trong dãy.

Bước 7. So sánh số ở đầu dãy với x. Vì a7_{7} = 5 khác x nên chuyển sang xét số tiếp theo a8_{8} trong dãy.

Bước 8. So sánh số ở đầu dãy với x. Vì a8_{8} = 1 khác x nên chuyển sang xét số tiếp theo a9_{9} trong dãy.

Bước 9. So sánh số ở đầu dãy với x. Vì a9_{9} = 13 khác x nên chuyển sang xét số tiếp theo a10_{10} trong dãy.

Bước 10. So sánh số ở đầu dãy với x. Vì a10_{10} = 10 khác x, ta đã duyệt đến cuối dãy những không tìm thấy x = 6.

Kết luận: Không tìm thấy phần tử x = 6.

Câu 2

1 điểm

Cho dãy số ban đầu như trong Bài 1. Bằng cách trình bày thông tin dưới dạng bảng, hãy mô phỏng diễn biến các bước của thuật toán sắp xếp chọn để sắp xếp dãy số theo chiều không tăng.

Hình minh hoạ

Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Dãy (a)a1_{1}a2_{2}a3_{3}a4_{4}a5_{5}a6_{6}a7_{7}a8_{8}a9_{9}a10_{10}Giải thích
Ban đầu817231127511310Tiếp theo đổi chỗ 23 và a1_{1}
Sau bước 1231781127511310Tiếp theo không đổi chỗ
Sau bước 2231781127511310Tiếp theo đổi chỗ 13 và a3_{3}
Sau bước 3231713112751810Tiếp theo đổi chỗ 12 và a4_{4}
Sau bước 4231713121751810Tiếp theo đổi chỗ 10 và a5_{5}
Sau bước 5231713121075181Tiếp theo đổi chỗ 8 và a6_{6}
Sau bước 6231713121085171Tiếp theo đổi chỗ 7 và a7_{7}
Sau bước 7231713121087151Tiếp theo đổi chỗ 5 và a8_{8}
Sau bước 8231713121087511Tiếp theo không đổi chỗ
Sau bước 9231713121087511Tiếp theo không đổi chỗ
Dãy kết quả231713121087511

Câu 3

1 điểm

Cho dãy số ban đầu như trong Bài 1. Bằng cách trình bày thông tin dưới dạng bảng, hãy mô phỏng diễn biến các bước của thuật toán sắp xếp nổi bọt để sắp xếp dãy số theo chiều không tăng.

Hình minh hoạ

Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Dãy (a)a1_{1}a2_{2}a3_{3}a4_{4}a5_{5}a6_{6}a7_{7}a8_{8}a9_{9}a10_{10}Giải thích
Ban đầu817231127511310Tiếp theo so sánh a1_{1} và a2,_{2,} a2_{2}> a2_{2}đổi chổ a1_{1} và a2_{2}
Sau bước 1178231127511310Tiếp theo so sánh a2_{2} và a3_{3}, a3_{3}> a2_{2}đổi chổ a2_{2} và a3_{3}
Sau bước 2172381127511310Tiếp theo so sánh a3_{3} và a4_{4}, a3_{3}> a4_{4}giữ nguyên vị trí
Sau bước 3172381127511310Tiếp theo so sánh a4_{4} và a5_{5}, a5_{5}> a4_{4}đổi chổ a4_{4} và a5_{5}
Sau bước 4172381217511310Tiếp theo so sánh a5_{5} và a6_{6}, a6_{6}> a5_{5}đổi chổ a5_{5} và a6_{6}
Sau bước 5172381271511310Tiếp theo so sánh a6_{6} và a7_{7}, a7_{7}> a6_{6}đổi chổ a6_{6} và a7_{7}
Sau bước 6172381275111310Tiếp theo so sánh a7_{7} và a8_{8}, a7_{7}= a8_{8}giữ nguyên vị trí
Sau bước 7172381275111310Tiếp theo so sánh a8_{8} và a9_{9}, a9_{9}> a8_{8}đổi chổ a8_{8} và a9_{9}
Sau bước 8172381275113110Tiếp theo so sánh a9_{9} và a10_{10}, a10_{10}> a9_{9}đổi chổ a9_{9} và a10_{10}
Sau bước 9172381275113101Tiếp theo ta quay lại lại bước 1và thực hiện vòng lặp tương tự.
Dãy kết quả231713121087511

Câu 4

1 điểm

Hãy mô phỏng thuật toán tìm kiếm nhị phân trong dãy số đã sắp thứ tự là kết quả của Bài 2 và Bài 3.

1) Tìm x = 5.

2) Tìm x = 6.

Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

a1_{1}a2_{2}a3_{3}a4_{4}a5_{5}a6_{6}a7_{7}a8_{8}a9_{9}a10_{10}
Dãy kết quả231713121087511

1) x = 5

Bước 1. Chia đôi phạm vi tìm kiếm từ đầu dãy a1 đến a10.

Bước 2. Lấy a5 là vị trí cần chia đôi. Vì a5 > x. Ta sẽ thu hẹp được phạm vi tìm kiếm. Từ a1 đến a5 chắc chắn sẽ không chứa x cần tìm. Kết quả: Tìm thấy số x tại vị trí a8.

Bước 3. Lấy a8 là vị trí cần chia đôi. Khi ta chia đôi ở a8 ta thấy vị trí số x.

2) x = 6

Bước 1. Chia đôi phạm vi tìm kiếm từ đầu dãy a1 đến a10.

Bước 2. Lấy a5 là vị trí cần chia đôi. Vì a5 > x. Ta sẽ thu hẹp được phạm vi tìm kiếm. Từ a1 đến a5 chắc chắn sẽ không chứa x cần tìm.

Bước 3. Lấy a8 là vị trí cần chia đôi. Ta sẽ thu hẹp được phạm vi tìm kiếm. Từ a8 đến a10 chắc chắn sẽ không chứa x cần tìm. Khi đó chỉ còn vị trí a6 và a7, thì ta kiểm tra không có số x cần tìm. Kết quả: Không tìm thấy số x.

Câu 5

1 điểm
Nếu được yêu cầu sắp xếp một dãy số, em lựa chọn thuật toán sắp xếp chọn hay sắp xếp nổi bọt? Giải thích tại sao.
Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Em sẽ lựa chọn thuật toán sắp xếp nổi bọt vì sắp xếp chọn hay nổi bọt đều như nhau, đều dùng phép so sánh để đưa ra kết quả lớn nhất và đổi chỗ vị trí với nhau. Nhưng khi dùng sắp xếp nổi bọt thì em thấy bước cuối cùng sẽ duyệt mảng lần nữa sẽ chắc chắn là mảng đó đã được sắp xếp theo thứ tự tăng hoặc giảm.

Đề cùng chủ đề

Tất cả đề Thực hành mô phỏng các thuật toán tìm kiếm, sắp xếp · Các bộ sách Tin học Lớp 7