Trình trực quan hóa tìm kiếm nhị phân
Mô phỏng động quá trình tìm kiếm nhị phân trên một mảng đã sắp xếp, cho phép nhập giá trị mục tiêu, điều khiển từng bước, tùy chỉnh tốc độ, đếm số lần so sánh trực tiếp và hiển thị pseudocode. Chạy hoàn toàn trên trình duyệt.
Code examples
Ready-to-copy reference implementations. Free to use in your own projects and assignments.
Cách dùng
- 1 Đặt một giá trị Target (mảng luôn được tự động sắp xếp để phục vụ tìm kiếm nhị phân).
- 2 Nhấn Play để xem quá trình tìm kiếm chia đôi phạm vi ở mỗi bước, hoặc dùng Step để chạy từng bước một.
- 3 Nhập các số của riêng bạn vào ô Custom rồi nhấn Apply — chúng sẽ được sắp xếp lại.
- 4 Theo dõi pseudocode được tô sáng cùng phạm vi lo / mid / hi khi nó thu hẹp dần.
Vì sao dùng công cụ này
- Xem cách mỗi lần so sánh loại bỏ một nửa số phần tử còn lại.
- Hiểu vì sao tìm kiếm nhị phân có độ phức tạp O(log n) — phạm vi tìm kiếm thu hẹp theo cấp số nhân.
- Quan sát vùng bị làm mờ mở rộng dần khi các ứng viên bị loại bỏ.
- Chạy hoàn toàn trên trình duyệt của bạn. Không cần đăng ký, không cần tải lên.
Câu hỏi thường gặp
Tìm kiếm nhị phân là gì?
Tìm kiếm nhị phân tìm một giá trị mục tiêu trong mảng đã sắp xếp bằng cách liên tục so sánh phần tử ở giữa và loại bỏ nửa mảng chắc chắn không chứa mục tiêu.
Độ phức tạp thời gian của tìm kiếm nhị phân là gì?
O(log n) trong trường hợp trung bình và xấu nhất, vì mỗi lần so sánh chia đôi không gian tìm kiếm. Trường hợp tốt nhất là O(1) khi mục tiêu chính là điểm giữa đầu tiên.
Tìm kiếm nhị phân có cần mảng đã sắp xếp không?
Có. Tìm kiếm nhị phân chỉ hoạt động trên dữ liệu đã sắp xếp — đó là lý do công cụ này sắp xếp dữ liệu đầu vào trước khi tìm kiếm. Với dữ liệu chưa sắp xếp, hãy dùng tìm kiếm tuyến tính.
Tìm kiếm nhị phân khác tìm kiếm tuyến tính như thế nào?
Tìm kiếm tuyến tính kiểm tra lần lượt từng phần tử (O(n)); tìm kiếm nhị phân nhảy thẳng đến điểm giữa và chia đôi phạm vi (O(log n)), nhưng yêu cầu dữ liệu phải được sắp xếp trước.
Trình trực quan hóa tìm kiếm nhị phân là gì?
Trình trực quan hóa tìm kiếm nhị phân mô phỏng cách thuật toán tìm kiếm nhị phân xác định vị trí một giá trị mục tiêu trong mảng đã sắp xếp, bằng cách liên tục so sánh phần tử ở giữa và loại bỏ nửa mảng chắc chắn không chứa mục tiêu. Công cụ hiển thị phạm vi lo–hi thu hẹp dần và số lần so sánh, cho thấy vì sao tìm kiếm nhị phân có độ phức tạp O(log n).
Tính năng
Hoạt ảnh từng bước
Theo dõi các giới hạn low/high và điểm giữa cập nhật sau mỗi lần so sánh.
Độ phức tạp
Thời gian: O(log n) (tốt nhất O(1)). Bộ nhớ: O(1) khi lặp. Yêu cầu mảng đã sắp xếp.
Riêng tư 100%
Chạy hoàn toàn trong trình duyệt của bạn — không có gì được tải lên.
Ví dụ
Input
find 7 in [1, 3, 5, 7, 9, 11]
Output
mid=5 → mid=9 → mid=7 → found at index 3
Trường hợp sử dụng
-
1
Hiểu tìm kiếm logarit
Xem lý do vì sao việc chia đôi phạm vi lại cho ra thời gian tra cứu O(log n).
-
2
Tra cứu dữ liệu đã sắp xếp
Tìm hiểu khi nào tìm kiếm nhị phân vượt trội hơn quét tuyến tính.
-
3
Gỡ lỗi sai lệch ranh giới (off-by-one)
Theo dõi cách low/high/mid di chuyển để tránh lỗi ranh giới.
Trình trực quan hóa tìm kiếm nhị phân của Zerethon mô phỏng thuật toán trên một mảng đã sắp xếp ngay trong trình duyệt của bạn, liên tục thu hẹp một nửa phạm vi tìm kiếm bằng cách so sánh giá trị cần tìm với phần tử ở giữa. Tìm kiếm nhị phân chạy trong thời gian O(log n) (tốt nhất là O(1) khi phần tử giữa khớp ngay) với O(1) bộ nhớ phụ, nhưng yêu cầu dữ liệu đầu vào phải được sắp xếp trước.
- Danh mục
- Thuật toán
- Giá
- Miễn phí
- Quyền riêng tư
- Chạy trên trình duyệt
- Đăng ký
- Không cần
Tài liệu tham khảo
- MIT OCW 6.006 — Nhập môn Thuật toán (CLRS) — MIT OpenCourseWare
- Thuật toán tìm kiếm nhị phân — Wikipedia
Quyền riêng tư
Dữ liệu của bạn không bao giờ rời khỏi trình duyệt trừ khi được nêu rõ. Trình trực quan hóa tìm kiếm nhị phân chạy hoàn toàn phía client — không tải lên máy chủ, không ghi log, không theo dõi dữ liệu bạn nhập.
Mới làm quen? Đọc giải thích từng bước kèm phân tích Big-O: Tìm hiểu Searching Algorithms →
Công cụ liên quan
Trình trực quan hóa Linear Search
Mô phỏng động linear search với ô nhập giá trị đích, điều khiển từng bước, tốc độ, bộ đếm so sánh trực tiếp và pseudocode. Hoạt động trên dữ liệu chưa sắp xếp. Chạy ngay trong trình duyệt.
Mở công cụTrình mô phỏng Bubble Sort
Mô phỏng bubble sort có hoạt ảnh với các nút điều khiển từng bước, tốc độ, dữ liệu đầu vào tùy chỉnh, bộ đếm so sánh/hoán đổi trực tiếp và pseudocode. Chạy hoàn toàn trong trình duyệt của bạn.
Mở công cụTrình trực quan hóa Insertion Sort
Insertion Sort hoạt hình với các nút điều khiển từng bước, tốc độ, dữ liệu đầu vào tùy chỉnh, bộ đếm so sánh/ghi trực tiếp và mã giả (pseudocode). Chạy hoàn toàn trên trình duyệt của bạn.
Mở công cụTrình trực quan hóa Selection Sort
Selection Sort hoạt hình với các nút điều khiển từng bước, tốc độ, dữ liệu đầu vào tùy chỉnh, bộ đếm so sánh/hoán đổi trực tiếp và mã giả (pseudocode). Chạy hoàn toàn trên trình duyệt của bạn.
Mở công cụXây dựng, chia sẻ và phát triển trên Zerethon Social
Đăng ký miễn phí. Kiếm điểm, sưu tầm thành tựu và kết nối với nhà sáng tạo khắp thế giới.