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

Hoán đổi và chia nhỏ bài toán

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

Giữ giá trị cũ trước khi thay

**Hoán đổi** hai giá trị là làm cho mỗi vị trí nhận giá trị ban đầu của vị trí kia. Giả sử A giữ 12, B giữ 7. Sau hoán đổi, A cần giữ 7 và B giữ 12, không làm mất một trong hai số. Nếu cho A nhận 7 trước mà chưa giữ số 12 ở đâu, thì cả A và B đều giữ 7; số 12 ban đầu ở A không còn để đưa sang B. Ta dùng một chỗ lưu tạm T: | Bước | A | B | T | |---|---|---|---| | Ban đầu | 12 | 7 | Trống | | Giữ A vào T | 12 | 7 | 12 | | Cho A nhận B | 7 | 7 | 12 | | Cho B nhận T | 7 | 12 | 12 | Chỗ lưu tạm giúp giữ giá trị 12 trong lúc A được thay bằng 7. Khi dùng thẻ giấy, có thể đổi vị trí hai thẻ trực tiếp; bảng trên giải thích cách giữ dữ liệu khi phải thay giá trị lần lượt.

Bài luyện

A giữ 12, B giữ 7. Đã lưu 12 vào T rồi cho A nhận giá trị của B. Bước tiếp theo để hoàn tất hoán đổi là gì?
Chọn một đáp án

Bài luyện

Vì sao cần giữ giá trị cũ của A trước khi thay A bằng giá trị của B?
Chọn một đáp án

Việc nhỏ góp vào lời giải của việc lớn

Một bài toán có thể được giải bằng cách kết hợp lời giải của những bài toán nhỏ hơn. Chia nhỏ giúp mỗi phần dễ hiểu, dễ thực hiện và dễ kiểm tra, đồng thời vẫn giữ yêu cầu đầu ra của bài toán ban đầu. Trong sắp xếp, một việc nhỏ là hoán đổi đúng hai giá trị. Việc lớn hơn quyết định so sánh những phần tử nào, khi nào đổi và lặp đến đâu. Chỉ biết đổi hai giá trị chưa đủ để sắp xếp cả dãy; cần tổ chức các bước theo thuật toán. Trong tìm kiếm nhị phân, sau một lần so sánh, bài toán tìm trên toàn vùng được thu thành bài toán tìm trên một vùng nhỏ hơn. Vẫn tìm cùng giá trị cần tìm, không đổi sang một yêu cầu khác. Thực hành với hai thẻ 12 và 7, ghi ba bước dùng chỗ tạm rồi đối chiếu đầu ra 7, 12. Sau đó dùng các thẻ của dãy 9, 4, 7, 2, 6 để thực hiện các phép so sánh và hoán đổi ở hai bài sắp xếp tiếp theo.

Bài luyện

Trong tìm kiếm nhị phân, việc chia thành bài toán nhỏ hơn được thể hiện thế nào?
Chọn một đáp án

Bài luyện

Ý nghĩa phù hợp của chia một bài toán thành các bài toán nhỏ hơn là gì?
Chọn một đáp án

Đang học