Tiệm Công Nghệ

Đang hiện gợi ý.

Đang mở danh mục của tiệm…
↑↓ để di chuyển↵ để mởesc để đóng
Tìm kiếm Tiệm Công Nghệ
Animationv1.0.0~13 KB (gzip)

Binary Search Animation

Tìm kiếm nhị phân chạy từng bước, ba con trỏ lo / mid / hi lướt trên mảng — sẵn sàng cho bài giảng, slide và blog

Miễn phíMiễn phí
Định dạng

.zip · HTML / CSS / JS · v1.0.0

Miễn phí — không cần tài khoản hay email. Luôn là bản mới nhất.

Đang chạy trực tiếp

Phiên bản
Độ rộng khung xem
Thu phóng

Giới thiệu

Tìm kiếm nhị phân dễ hiểu nhất khi bạn tận mắt thấy nó vứt đi một nửa mảng. Animation này chạy đúng hàm binarySearch và lowerBound trên trang thuật toán miễn phí, từng bước một: lo, mid và hi lướt trên dãy ô đã sắp xếp, mỗi lần so arr[mid] vs target đều hiện rõ, nửa không thể chứa đáp án mờ đi và chìm xuống, còn dòng code đang chạy sáng lên ngay bên cạnh. Có giá trị cần tìm thì ô đó phát sáng và bung pháo hoa. Không có thì một vệt sáng chỉ đúng chỗ nó sẽ được chèn vào.

  • Hai hàm, một nút chuyển: khoảng đóng [lo, hi] của binarySearch và khoảng nửa mở [lo, hi) của lowerBound
  • Đếm số bước so với trường hợp tệ nhất ⌈log₂(n + 1)⌉, kèm thanh đo cho thấy 15 → 7 → 3 → 1
  • Bấm vào một ô hoặc gõ số bất kỳ để tìm; mảng ngẫu nhiên theo seed, hoặc dữ liệu của bạn, có phần tử trùng cũng được
  • Trình phát đầy đủ với thanh kéo và tốc độ 0.5×–4×, đẹp khi chiếu slide hay quay video
  • Mọi màu sắc, bo góc, font chữ và thời gian đều là CSS custom property; sáng tối theo trang của bạn
  • Không cần cài gì: một file CSS và một script, hoặc một component React

Tính năng · 9

  • Diễn lại đúng binarySearch và lowerBound như trên trang thuật toán miễn phí, có nút chuyển qua lại giữa hai hàm
  • lo, mid, hi lướt trên các ô; nửa không thể chứa giá trị cần tìm mờ đi và chìm xuống
  • Mỗi phép so sánh hiện rõ (arr[mid] vs target), có chú thích bằng lời dễ hiểu và dòng code đang chạy được tô sáng
  • Tìm thấy: ô phát sáng và bung pháo hoa. Không thấy: một vệt sáng chỉ đúng chỗ giá trị sẽ được chèn vào
  • Đếm số bước so với trường hợp tệ nhất ⌈log₂(n + 1)⌉, kèm thanh đo vùng tìm kiếm co lại một nửa sau mỗi bước
  • Trình phát: chạy, dừng, lùi, tiến từng bước, về đầu, kéo thanh thời gian, tốc độ 0.5×–4×, tuỳ chọn lặp lại
  • Chọn giá trị cần tìm bằng cách bấm vào một ô hoặc gõ số bất kỳ; đổi kích thước, tạo mảng ngẫu nhiên theo seed hoặc dùng dữ liệu của bạn
  • Bản HTML/CSS/JS thuần và bản React (dùng được với Next.js), đủ sáng và tối
  • Không phụ thuộc thư viện, khoảng 13 KB sau gzip (cả script lẫn CSS)

Cách dùng

Nhúng stylesheet và script một lần, rồi đặt một phần tử rỗng có data-binary-search-animation ở bất cứ chỗ nào bạn muốn có trình phát:

HTML
<link rel="stylesheet" href="binary-search-animation.css" />
<script src="binary-search-animation.js" defer></script>

<div class="binary-search-animation" data-binary-search-animation></div>

<div
  class="binary-search-animation"
  data-binary-search-animation
  data-binary-search-animation-mode="lower-bound"
  data-binary-search-animation-values="2 2 2 3 3 5 5"
  data-binary-search-animation-target="3"
></div>

Tuỳ chọn qua data attribute, đều bắt đầu bằng data-binary-search-animation-:

Attribute Mặc định Tác dụng
-mode binary-search binary-search hoặc lower-bound
-values ngẫu nhiên Dãy số của bạn, cách nhau bằng dấu cách hoặc dấu phẩy (tự được sắp xếp)
-target lấy từ mảng Giá trị cần tìm
-size 15 Số phần tử của mảng ngẫu nhiên (1–40)
-seed 7 Chọn mảng ngẫu nhiên nào: cùng seed luôn ra cùng một mảng
-speed 1 Từ 0.25 đến 4
-autoplay true Tự chạy khi tải xong (không bao giờ tự chạy khi bật giảm chuyển động)
-loop false Dừng một chút ở kết quả rồi chạy lại từ đầu
-code true false để ẩn khung code
-inputs true false để ẩn hàng nhập liệu (chọn hàm, giá trị cần tìm, kích thước, mảng mới)

Phần tử thêm vào sau khi trang đã tải: gọi BinarySearchAnimation.init(container), hàm này trả về một hàm để gỡ bỏ. Muốn điều khiển toàn bộ thì dùng BinarySearchAnimation.createBinarySearchAnimation(element, options): nó trả về một handle có setTarget, setMode, setValues, shuffle, player (play, pause, seek…) và destroy.

Hỏi về sản phẩm này

Chưa chắc có hợp dự án của bạn? Cứ hỏi — câu trả lời lấy từ chính trang này.

Câu trả lời do AI viết dựa trên trang này và có thể sai. Nội dung trên trang mới là chuẩn.

Lịch sử phiên bản

  1. 1.0.0First releaseMới nhất

    Plain HTML/CSS/JS and React builds of a step-by-step binarySearch and lowerBound animation with gliding lo / mid / hi pointers, live code, a step counter, player controls, light and dark.

  2. Bản sửa lỗi và tính năng mới đều có ngay ở nút tải này — file tải về luôn là bản mới nhất.