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

Thực hành mô phỏng thuật toán tìm kiếm, sắp xếp trang 90 SGK Tin Học lớp 7Cánh Diều, mời các em tham khảo cùng Bumbii.

Chủ đề F. Giải quyết vấn đề với sự trợ giúp của máy tính. Bài 5. Thực hành mô phỏng các thuật toán tìm kiếm, sắp xếp.

Bài 1

Cho dãy số ban đầu

a1a2a3a4a5a6a7a8a9a10
817231127511310

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.

Đáp án: Mô phỏng thuật toán tìm kiếm tuần tự

1) Tìm x = 5;

Dãy xuất phát

a1a2a3a4a5a6a7a8a9a10
817231127511310

Tìm x = 5. Các bước thực hiện tìm kiếm như sau:

BướcThực hiện
1So sánh số ở đầu với x: Vì a1 = 8 ≠ x nên chuyển sang xét số tiếp theo a2 trong dãy
2So sánh số đang xét với x: Vì a2 = 17 ≠ x nên chuyển sang xét số tiếp theo a3 trong dãy
3So sánh số đang xét với x: Vì a3 = 23 ≠ x nên chuyển sang xét số tiếp theo a4 trong dãy
4So sánh số đang xét với x: Vì a4 = 1 ≠ x nên chuyển sang xét số tiếp theo a5 trong dãy
5So sánh số đang xét với x: Vì a5 = 12 ≠ x nên chuyển sang xét số tiếp theo a6 trong dãy
6So sánh số đang xét với x: Vì a6 = 7 ≠ x nên chuyển sang xét số tiếp theo a7 trong dãy
7So sánh số đang xét với x: Vì a7 = 5 = x Kết luận: Tìm thấy x ở vị trí thứ bảy trong dãy; kết thúc thuật toán.

2) Tìm x = 6.

Dãy xuất phát

a1a2a3a4a5a6a7a8a9a10
817231127511310

Tìm x = 5. Các bước thực hiện tìm kiếm như sau:

BướcThực hiện
1So sánh số ở đầu với x: Vì a1 = 8 ≠ x nên chuyển sang xét số tiếp theo a2 trong dãy
2So sánh số đang xét với x: Vì a2 = 17 ≠ x nên chuyển sang xét số tiếp theo a3 trong dãy
3So sánh số đang xét với x: Vì a3 = 23 ≠ x nên chuyển sang xét số tiếp theo a4 trong dãy
4So sánh số đang xét với x: Vì a4 = 1 ≠ x nên chuyển sang xét số tiếp theo a5 trong dãy
5So sánh số đang xét với x: Vì a5 = 12 ≠ x nên chuyển sang xét số tiếp theo a6 trong dãy
6So sánh số đang xét với x: Vì a6 = 7 ≠ x nên chuyển sang xét số tiếp theo a7 trong dãy
7So sánh số đang xét với x: Vì a7 = 5 ≠ x nên chuyển sang xét số tiếp theo a8 trong dãy
8So sánh số đang xét với x: Vì a8 = 1 ≠ x nên chuyển sang xét số tiếp theo a9 trong dãy
9So sánh số đang xét với x: Vì a9 = 13 ≠ x nên chuyển sang xét số tiếp theo a10 trong dãy
10So sánh số cuối dãy với x: Vì a10 = 10 ≠ x Kết luận: Không tìm thấy x ở trong dãy; kết thúc thuật toán.

Bài 2

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 thuật toán sắp xếp chọn để sắp xếp dãy số theo chiều không tăng.

Gợi ý: Dựa theo cách làm trong Bài “Sắp xếp chọn”.

Đáp án:

Dãy (a)a1a2a3a4a5a6a7a8a9a10Giải thích
Ban đầu817231127511310Tiếp theo: đổi chỗ 23 và a1.
Sau bước 1231781127511310Tiếp theo: không đổi chỗ
Sau bước 2231781127511310Tiếp theo: đổi chỗ 13 và a3.
Sau bước 3231713112751810Tiếp theo: đổi chỗ 12 và a4.
Sau bước 4231713121751810Tiếp theo: đổi chỗ 10 và a5.
Sau bước 5231713121075181Tiếp theo: đổi chỗ 8 và a6.
Sau bước 6231713121085171Tiếp theo: đổi chỗ 7 và a7.
Sau bước 7231713121087151Tiếp theo: đổi chỗ 5 và a8.
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 

Bài 3

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.

Gợi ý: Dựa theo cách làm trong Bài “Sắp xếp nổi bọt”.

Đáp án:

Lượt thứ nhất:

a1a2a3a4a5a6a7a8a9a10Giải thích
817231127511310 
817231127511310 
817231127511310Đổi chỗ
817123127511310Đổi chỗ
817112237511310Đổi chỗ
817112723511310Đổi chỗ
817112752311310Đổi chỗ
817112751231310Đổi chỗ
817112751132310Đổi chỗ
817112751131023Hết lượt 1

Lượt thứ hai:

a1a2a3a4a5a6a7a8a9a10Giải thích
817112751131023 
817112751131023Đổi chỗ
811712751131023Đổi chỗ
811217751131023Đổi chỗ
811271751131023Đổi chỗ
811275171131023Đổi chỗ
811275117131023Đổi chỗ
811275113171023Đổi chỗ
811275113101723 
811275113101723Hết lượt 2

Lượt thứ ba:

a1a2a3a4a5a6a7a8a9a10Giải thích
811275113101723Đổi chỗ
181275113101723 
181275113101723Đổi chỗ
187125113101723Đổi chỗ
187512113101723Đổi chỗ
187511213101723 
187511213101723Đổi chỗ
187511210131723 
187511210131723 
187511210131723Hết lượt 3

Lượt thứ tư:

a1a2a3a4a5a6a7a8a9a10Giải thích
187511210131723 
187511210131723Đổi chỗ
178511210131723Đổi chỗ
175811210131723Đổi chỗ
175181210131723 
175181210131723Đổi chỗ
175181012131723 
175181012131723 
175181012131723 
175181012131723Hết lượt 4

Lượt thứ năm:

a1a2a3a4a5a6a7a8a9a10Giải thích
175181012131723 
175181012131723Đổi chỗ
157181012131723Đổi chỗ
151781012131723 
151781012131723 
151781012131723 
151781012131723 
151781012131723 
151781012131723 
151781012131723Hết lượt 5

Lượt thứ sáu:

a1a2a3a4a5a6a7a8a9a10Giải thích
151781012131723 
151781012131723Đổi chỗ
115781012131723 
115781012131723 
115781012131723 
115781012131723 
115781012131723 
115781012131723 
115781012131723 
115781012131723Hết lượt 6

Lượt thứ bảy:

a1a2a3a4a5a6a7a8a9a10Giải thích
115781012131723 
115781012131723 
115781012131723 
115781012131723 
115781012131723 
115781012131723 
115781012131723 
115781012131723 
115781012131723 
115781012131723Hết lượt 7

Dãy đã sắp xếp xong; thuật toán kết thúc.

Bài 4

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.

Đáp án:

1) Tìm x = 5;

Dãy (a)a1a2a3a4a5a6a7a8a9a10
Ban đầu115781012131723
Bước 11157     
Bước 2  57      
Bước 3  5       

Chia đôi lần 1: số giữa dãy là a5 = 8.

Vì x = 5 < 8 nên chọn nửa dãy phía trước là 1, 1, 5, 7.

Chia đôi lần 2: số giữa dãy mới là a2 = 1.

Vì x = 5 > 1 nên chọn nửa dãy phía sau là 5, 7.

Chia đôi lần 3: số giữa dãy mới là a3 = 5.

Vì x = 5 =5 (a3). Thuật toán kết thúc với kết quả: Tìm thấy x ở vị trí thứ ba trong dãy.

1) Tìm x = 6;

Dãy (a)a1a2a3a4a5a6a7a8a9a10
Ban đầu115781012131723
Bước 11157     
Bước 2  57      
Bước 3  5       

Chia đôi lần 1: số giữa dãy là a5 = 8.

Vì x = 6 < 8 nên chọn nửa dãy phía trước là 1, 1, 5, 7.

Chia đôi lần 2: số giữa dãy mới là a2 = 1.

Vì x = 6 > 1 nên chọn nửa dãy phía sau là 5, 7.

Chia đôi lần 3: số giữa dãy mới là a3 = 5.

Vì x = 6 >5 (a3). Phạm vi tìm kiếm chỉ còn một số.

Thuật toán kết thúc với kết quả: Không tìm thấy x ở vị trí thứ ba trong dãy.

Xem thêm các bài khác tại Giải bài tập sách giáo khoa Tin học lớp 7 – NXB Cánh Diều

Thông tin liên hệ & mạng xã hội:
Website: https://bumbii.com/
Facebook: https://www.facebook.com/bumbiiapp
Pinterest: https://www.pinterest.com/bumbiitech

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
0
Cùng chia sẻ bình luận của bạn nào!x