Danh mục bài soạn

Giải tin học 7 cánh diều bài 5 Thực hành mô phỏng các thuật toán tìm kiếm, sắp xếp

Hướng dẫn học môn Tin học 7 sách mới cánh diều. Dưới đây là lời giải chi tiết bài 5: Thực hành mô phỏng các thuật toán tìm kiếm, sắp xếp. Từng bài tập được giải chi tiết, rõ ràng, dễ hiểu. Hi vọng, hocthoi.net sẽ hỗ trợ các em trong quá trình học tập, giúp các em ngày càng tiến bộ hơn.

Câu hỏi 1. Cho dãy số ban đầu

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.

a. Tìm x = 5;

b. Tìm x = 6.

Lời giải:

a. Tìm x = 5;

Gọi số phải tìm là x (x=5). Các bước thực hiện là:

Bước

Thực hiện

 

1

So sánh số ở đầu dãy với x:

  • Vì a1 = 8 ≠ x nên chuyển sang xét số tiếp theo a2 trong dãy.

 

2

So 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.

 

3

So 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.

 

4

So 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.

 

5

So 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.

 

6

So 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.

 

 

7

So 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.

b. Tìm x = 6

Gọi số phải tìm là x (x=6). Các bước thực hiện là:

Bước

Thực hiện

 

1

So sánh số ở đầu dãy với x:

  • Vì a1 = 8 ≠ x nên chuyển sang xét số tiếp theo a2 trong dãy.

 

2

So 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.

 

3

So 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.

 

4

So 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.

 

5

So 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.

 

6

So 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.

 

7

So 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.

 

8

So 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.

 

9

So 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.

 

 

10

So sánh số đang xét với x:

  • Vì a10 = 10 ≠ x nên kết thúc dãy số.
  • Kết luận: Không tìm thấy x trong dãy; kết thúc thuật toán.

Câu hỏ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 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.

Gợi ý: Dựa theo cách làm trong bài "Sắp xếp chọn"

Lời giải:

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 là:

Câu hỏ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"

Lời giải:

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 là:

Câu hỏ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.

a. Tìm x = 5.
b. Tìm x = 6.

Lời giải:

a. Tìm x = 5.

  • Chia đôi lần 1: Phạm vi tìm kiếm là dãy từ a1 đến a10. Lấy a5 là số có vị trí giữa dãy; Vì x<a4 nên nửa đầu dãy chắc chắn không chứa x=5, tiếp theo tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy từ a6 đến a10.
  • Chia đôi lần 2: Phạm vi tìm kiếm là dãy từ a6 đến a10. Lấy a8 là số có vị trí giữa dãy. Vì x = a8 nên kết thúc thuật toán với kết quả: Tìm thấy x ở vị trí thứ tám.

b. Tìm x = 6

  • Chia đôi lần 1: Phạm vi tìm kiếm là dãy từ a1 đến a10. Lấy a5 là số có vị trí giữa dãy; Vì x<a4 nên nửa đầu dãy chắc chắn không chứa x=6, tiếp theo tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy từ a6 đến a10.
  • Chia đôi lần 2: Phạm vi tìm kiếm là dãy từ a6 đến a10. Lấy a8 là số có vị trí giữa dãy. Vì x>a8 nên nửa sau dãy chắc chắn không chứa x=6, tiếp theo tìm trong nửa đầu của dãy này. Như vậy, phạm vi tìm kiếm tiếp theo là dãy từ a5 đến a7.
  • Chia đôi lần 3: Phạm vi tìm kiếm là dãy từ a5 đến a7. Lấy a6 là số có vị trí giữa dãy. Vì x<a6 nên nửa đầu dãy chắc chắn không chứa x=6, tiếp theo tìm trong nửa sau của dãy này. Như vậy, phạm vi tìm kiếm tiếp theo là dãy từ a6 đến a7.
  • Phạm vi tìm kiếm chỉ còn một số nhưng không tìm thấy x. Kết thúc thuật toán với kết quả: Không có x trong dãy.

VẬN DỤNG

Câu hỏi. 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.

Lời giải:

  • 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 vì thuật toán sắp xếp chọn sẽ chọn phần tử lớn nhất trong dãy để xếp vào đầu dãy đó.
  • Việc chọn này sẽ tiết kiệm thời gian hơn, nhanh chóng và dễ hiểu hơn so với thuật toán nổi bọt chỉ so sánh và đổi chỗ hai phần tử liền kề. 

Từ khóa tìm kiếm google:

giải sgk tin học 7 sách mới, giải tin học 7 cánh diều, giải tin học 7 CD bài 5, giải bài thực hành mô phỏng các thuật toán tìm kiếm, sắp xếp
Phần trên, hocthoi.net đã soạn đầy đủ lý thuyết và bài tập của bài học: Giải tin học 7 cánh diều 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 học nằm trong chuyên mục: Giải tin học 7 cánh diều. Phần trình bày do Quỳnh Chi tổng hợp và thực hiện giải bài. Nếu có chỗ nào chưa rõ, có phần nào muốn hiểu rộng thêm, bạn đọc vui lòng comment bên dưới. Ban biên tập sẽ giải đáp giúp các bạn trong thời gian sớm nhất.

Bài soạn các môn khác

Bình luận