Chuyển tới nội dung chính
Z

Trình trực quan hóa Quick Sort

Quicksort hoạt hình với làm nổi bật pivot/phân vùng, điều khiển từng bước, tốc độ, nhập tùy chỉnh, bộ đếm trực tiếp và mã giả. Chạy ngay trong trình duyệt của bạn.

Miễn phí Không cần đăng ký Chạy trên trình duyệt Tôn trọng riêng tư Updated
/
Comparisons: Swaps / writes: Array accesses:

Code examples

Ready-to-copy reference implementations. Free to use in your own projects and assignments.

Cách dùng

  1. 1 Nhấn Play để xem từng lần phân vùng đặt pivot vào đúng vị trí và chia mảng quanh nó.
  2. 2 Dùng Step để tiến từng phép so sánh một và theo dõi con trỏ phân vùng.
  3. 3 Nhập các số của riêng bạn vào ô Custom input rồi nhấn Apply.
  4. 4 Theo dõi mã giả được làm nổi bật cùng bộ đếm so sánh / hoán đổi trực tiếp.

Vì sao dùng công cụ này

  • Xem cách phân vùng quanh pivot dẫn dắt đệ quy chia để trị (divide-and-conquer).
  • Hiểu vì sao quicksort thường là thuật toán sắp xếp so sánh nhanh nhất trong thực tế.
  • Các chỉ số cho thấy trường hợp xấu nhất O(n²) khi pivot chia mảng kém (ví dụ: dữ liệu đã sắp xếp sẵn).
  • Chạy hoàn toàn trong 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

Quicksort là gì?

Quicksort chọn một pivot, phân vùng mảng sao cho các phần tử nhỏ hơn nằm bên trái và lớn hơn nằm bên phải, sau đó sắp xếp đệ quy từng bên. Công cụ này sử dụng lược đồ Lomuto với phần tử cuối cùng làm pivot.

Độ phức tạp thời gian của quicksort là gì?

Trung bình là O(n log n), nhưng trường hợp xấu nhất là O(n²) khi pivot liên tục là phần tử nhỏ nhất hoặc lớn nhất. Chọn pivot ngẫu nhiên hoặc theo median-of-three giúp tránh điều này trong thực tế.

Quicksort có ổn định (stable) không?

Không. Các phép hoán đổi trong quá trình phân vùng di chuyển phần tử khắp mảng và có thể làm thay đổi thứ tự của các giá trị bằng nhau. Vẫn có các biến thể quicksort ổn định nhưng chúng sử dụng thêm bộ nhớ.

Vì sao quicksort lại phổ biến đến vậy?

Nó sắp xếp tại chỗ (in place) với hiệu năng cache tốt và hằng số nhỏ, nên thường nhanh hơn merge sort hay heap sort trên dữ liệu thực tế, dù có giới hạn trường hợp xấu nhất.

Trình trực quan hóa Quick Sort là gì?

Trình trực quan hóa Quick Sort mô phỏng hoạt ảnh của thuật toán quicksort: chọn một pivot, phân vùng các phần tử quanh nó, rồi sắp xếp đệ quy từng bên. Công cụ này sử dụng lược đồ phân vùng Lomuto và cho thấy vì sao quicksort có độ phức tạp trung bình O(n log n) nhưng có thể rơi vào O(n²) khi chọn pivot kém.

Tính năng

Hoạt ảnh từng bước

Xem quá trình chọn pivot, phân hoạch và đệ quy trên từng mảng con.

Độ phức tạp

Thời gian: trung bình O(n log n), xấu nhất O(n²). Không gian: trung bình O(log n). Tại chỗ (in-place); không ổn định (not stable).

Riêng tư 100%

Chạy hoàn toàn trên trình duyệt của bạn — không có dữ liệu nào được tải lên.

Ví dụ

Input

[5, 2, 8, 1]

Output

choose pivot, partition into < and ≥, recurse → [1, 2, 5, 8] (sorted)

Trường hợp sử dụng

  1. 1

    Hiểu về phân hoạch

    Xem cách các phần tử được chia thành nhóm < pivot và ≥ pivot.

  2. 2

    Cạm bẫy trường hợp xấu nhất

    Xem cách chọn pivot ngây thơ trên dữ liệu đã sắp xếp làm giảm hiệu năng xuống O(n²).

  3. 3

    Vì sao nhanh trong thực tế

    Xem cách chọn pivot ngẫu nhiên hoặc median-of-three giúp tránh trường hợp xấu nhất.

Tóm tắt

Công cụ trực quan hóa quicksort của Zerethon minh họa thuật toán chia để trị ngay trên trình duyệt: chọn phần tử chốt (pivot), phân hoạch các phần tử xung quanh nó, rồi đệ quy. Quicksort chạy với độ phức tạp trung bình O(n log n) nhưng giảm xuống O(n²) trong trường hợp xấu nhất (ví dụ: chọn pivot ngây thơ trên dữ liệu đã sắp xếp sẵn); thuật toán sử dụng trung bình O(log n) không gian ngăn xếp, thực hiện tại chỗ (in-place) và không ổn định (not stable). Việc chọn pivot tốt (ví dụ: median-of-three hoặc ngẫu nhiên) giúp thuật toán nhanh trong thực tế.

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

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 Quick Sort 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 Sorting Algorithms →

So sánh

Công cụ liên quan

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.

Đăng ký miễn phí