Câu hỏi:

11/07/2024 1,029

Nếu phải tìm một số trong dãy đã sắp xếp theo thứ tự tăng dần hoặc giảm dần, em có cách nào tìm nhanh hơn tìm kiếm tuần tự không?

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

Em sẽ chia đôi dãy làm hai phần để tìm kiếm nhanh hơn.

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Lời giải

Bước 1. Sắp xếp dãy theo thứ tự không giảm.

Bước 2. Ta chia đôi dãy số để tìm x trong dãy.

Bước 3. Lấy phần tử đứng giữa dãy để so sánh với x.

Nếu phần tử đó chính là x thì kết luận đã tìm thấy x và kết thúc thuật toán.

Ngược lại, ta có thể xác định được x chắc chắn không có trong nửa đầu hay nửa sau của dãy. Từ đó ta xác định được phạm vi tìm kiếm và thực hiện tìm kiếm trong phạm vi nữa dãy còn lại, sẽ được lặp lại theo cách như thế cho đến khi tìm được kết quả.

Lời giải

Tìm kiếm x = 60.

Bước 1. Ta sắp xếp dãy theo thứ tự không giảm.

Bước 2. Ta chia đôi dãy số để tìm x trong dãy. Ta sẽ chia ngay vị trí a6 (a6=52) vì x > a6. Phạm vi tìm kiếm tiếp theo là từ a7 đến a8.

Bước 3.  Khi đó phạm vi tìm kiếm chỉ có a7 đến a8 và ta thấy không có số nào bằng x. Kết thúc thuật toán không tìm thấy kết quả x.

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP