Vét cạn là xét toàn bộ miền tìm kiếm
Duyệt vét cạn lần lượt xét tất cả dữ liệu trong miền để tìm kết quả. Ví dụ, đọc mọi ô của mảng m×n cần xét m×nô; tìm tổng nhỏ nhất trong danh sách chưa có điều kiện loại sớm cần kiểm mọi hàng.
Tìm kiếm tuần tự có thể dừng ngay khi thấy một kết quả. Khi phải đi hết dãy, chẳng hạn để xác nhận không có giá trị đích, lượt tìm đó xét toàn bộ miền. Không gọi mọi lần tìm tuần tự đều đọc hết dãy. Tìm nhị phân loại một phần miền dựa trên thứ tự, nên không là duyệt vét cạn các phần tử.
Miền có thể lớn hơn một danh sách ngắn
Xâu nhị phân độ dài n có $2^n$ khả năng vì mỗi vị trí nhận 0 hoặc 1. Hoán vị của n phần tử phân biệt có $n!$ khả năng. Ví dụ:
| n | Số xâu nhị phân | Số hoán vị |
|---|---|---|
| 3 | 8 | 6 |
| 6 | 64 | 720 |
| 10 | 1024 | 3628800 |
Với n nhỏ có thể liệt kê và đối chiếu. Khi n tăng, số ứng viên tăng nhanh nên duyệt toàn bộ có thể tốn nhiều thời gian; lưu toàn bộ ứng viên cùng lúc còn cần nhiều bộ nhớ. Không kết luận mọi n đều không thể duyệt, cũng không cần tạo sẵn một mảng chứa mọi khả năng trước khi bắt đầu xét. Các bài sau sẽ học cách sinh ứng viên bằng quay lui.
Bài luyện
Duyệt vét cạn mảng 3×4 cần xét bao nhiêu ô?
Có3 hàng, mỗi hàng4 ô.
Đây là cộng hai kích thước, chưa đếm mọi ô.
Chưa tính số ô trong mỗi hàng.
Chưa tính số hàng.
Lời giải
Mảng có 3 hàng×4 ô mỗi hàng=12 ô. Duyệt toàn bộ cần xét đủ12 ô ấy.
Bài luyện
Có bao nhiêu xâu nhị phân độ dài 3?
Không có 3 lựa chọn tại mỗi vị trí nhị phân.
Mỗi vị trí có 2 chọn, tổng 2³=8.
6 là 3!, số hoán vị của ba phần tử phân biệt.
3 là độ dài xâu.
Lời giải
Ba vị trí, mỗi vị trí độc lập có 0 hoặc 1, nên 2×2×2=8 xâu.
Bài luyện
Tìm tuần tự thấy ngay phần tử đầu rồi dừng có xét toàn bộ dãy dài10 không?
Không có việc tự kiểm sau return.
Dừng tìm không yêu cầu xóa dữ liệu.
Cách dừng phụ thuộc yêu cầu một kết quả và vị trí tìm thấy.
Chỉ trường hợp đi hết miền mới xét toàn bộ.
Lời giải
Yêu cầu chỉ cần một kết quả, phần tử đầu đã khớp nên có thể trả ngay. Tìm tuần tự có trường hợp xét hết dãy, nhưng lượt này không phải trường hợp đó.
Đang học