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~16 KB (gzip)

Quick Sort Animation

Sắp xếp nhanh từng bước: phần tử chốt, hai con trỏ của Hoare và ngăn xếp gọi hàm luôn nông

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

Sắp xếp nhanh thì dễ nói mà khó thấy. Trình phát này cho bạn xem từng bước một: ba giá trị mà trung vị của ba nhìn vào, phần tử chốt được chọn, hai con trỏ i và j của Hoare đi về phía nhau, các lần đổi chỗ trượt vào vị trí, rồi điểm chia. Đoạn nào đã xong thì chuyển xanh, và ngăn xếp gọi hàm bên cạnh cho thấy mẹo giữ cho quick sort an toàn: đệ quy vào bên nhỏ, lặp ở bên lớn, nên ngăn xếp không bao giờ sâu quá ⌈log₂ n⌉.

  • Chạy đúng đoạn code trên trang Quick Sort, và code đó sáng lên từng dòng theo từng bước
  • Mỗi bước có một câu giải thích dễ hiểu ("values[j] = 39 is not above 39: j stops here")
  • Đầu vào ngẫu nhiên, đã sắp xếp, sắp xếp ngược hoặc nhiều giá trị trùng từ một seed, hoặc số của bạn
  • Phát, đi từng bước, kéo thanh thời gian, đổi tốc độ bằng chuột hoặc bàn phím; lặp lại được cho slide hay video
  • Mọi màu, bo góc và thời gian đều là CSS custom property; sáng và tối tự theo trang của bạn
  • Không cần cài gì: một file CSS và một script nhỏ, hoặc một component React

Tính năng · 9

  • Bám đúng đoạn code trên trang thuật toán: phân hoạch Hoare, chốt trung vị của ba, đệ quy vào bên nhỏ hơn
  • Các cột trượt sang chỗ mới khi đổi chỗ; khoảng đang xét, đường chốt, i và j cùng điểm chia hiện ra đúng lúc
  • Chính đoạn code của trang, dòng đang chạy sáng lên; ngăn xếp gọi hàm cho thấy mẹo lặp ở bên lớn hơn
  • Mỗi bước có một câu giải thích dễ hiểu, kèm số lần so sánh, số lần đổi chỗ và độ sâu ngăn xếp so với ⌈log₂ n⌉
  • Phát, dừng, đi từng bước, kéo thanh thời gian, tốc độ 0.5×–4×; có màn ăn mừng nho nhỏ khi mảng đã xếp xong
  • Đầu vào ngẫu nhiên, đã sắp xếp, sắp xếp ngược hoặc nhiều giá trị trùng, sinh từ một seed chạy lại được; hoặc dùng số của bạn
  • Giao diện aurora tối, sang chế độ sáng vẫn đẹp; vừa điện thoại, bài blog lẫn slide 16:9
  • Bản HTML/CSS/JS thuần và bản React (dùng được với Next.js)
  • Không phụ thuộc thư viện, khoảng 16 KB sau gzip (cả script lẫn style)

Cách dùng

Nhúng stylesheet và script một lần, rồi đánh dấu một phần tử trống bằng data-quick-sort-animation. Toàn bộ trình phát được dựng bên trong nó:

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

<div data-quick-sort-animation data-quick-sort-size="16" data-quick-sort-loop></div>

<!-- số của bạn, bỏ các bảng phụ: hợp để đưa lên slide -->
<div
  data-quick-sort-animation
  data-quick-sort-values="7, 2, 9, 4, 3, 8, 1"
  data-quick-sort-inputs="false"
  data-quick-sort-panels="false"
></div>

Tuỳ chọn qua data attribute (tuỳ chọn bật/tắt: có mặt là bật, ghi "false" là tắt):

Attribute Mặc định Tác dụng
data-quick-sort-values — Dãy số của bạn, cách nhau bằng dấu phẩy hoặc khoảng trắng (tối đa 48); thay cho mảng sinh tự động
data-quick-sort-size 16 Số cột của mảng sinh tự động, từ 2 đến 48
data-quick-sort-scenario random random, sorted, reversed hoặc duplicates
data-quick-sort-seed 7 Chọn mảng sinh ra: cùng seed thì luôn ra cùng một mảng
data-quick-sort-speed 1 Từ 0.25 đến 4
data-quick-sort-autoplay bật Tự phát khi tải trang (không bao giờ tự phát khi bật prefers-reduced-motion)
data-quick-sort-loop tắt Chạy lại từ đầu sau bước cuối
data-quick-sort-inputs bật Ô chọn số cột, kiểu đầu vào và nút "New input"
data-quick-sort-panels bật Bảng code và bảng ngăn xếp gọi hàm

Trình phát thêm vào sau khi trang đã tải: QuickSortAnimation.init(container) — hàm này trả về một hàm để gỡ lại. Muốn điều khiển từ code của bạn (ví dụ nút bấm chuyển slide), tự dựng nó:

JavaScript
const player = QuickSortAnimation.create(element, { values: [5, 1, 4, 2, 3], autoplay: false });
player.stepForward();
player.seek(20);
player.setValues([9, 8, 7]);
player.destroy(); // trả phần tử về như cũ

Handle còn có play, pause, stepBack, reset và frameCount.

Khi focus nằm ở bất kỳ đâu trong trình phát: Space phát hoặc dừng, ← / → đi từng bước, Home quay về đầu.

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 quick sort player (Hoare partition, median-of-three pivot, smaller-side recursion) with pseudocode, call stack, counters, seeded inputs, keyboard and reduced-motion support.

  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.
  • AnimationSắp xếp

    Bubble Sort Animation

    Bản tương tác của video ngắn: các cột bắt chéo khi đổi chỗ, đuôi đã sắp xếp dài dần và cú thoát sớm

    Miễn phí
  • AnimationSắp xếp

    Sorting Race

    Sáu thuật toán sắp xếp đua nhau trên cùng một bộ dữ liệu — mỗi nhịp một thao tác, về đích nhận huy chương

    Miễn phí