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

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

Mô phỏng merge sort có hoạt ảnh với đ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.

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 mảng được chia thành các nửa rồi gộp lại theo thứ tự đã sắp xếp.
  2. 2 Dùng Step để tiến từng bước so sánh gộp một lần.
  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 tô sáng cùng bộ đếm so sánh / ghi trực tiếp.

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

  • Xem chia để trị hoạt động thực tế: chia đệ quy rồi gộp có thứ tự.
  • Hiểu vì sao merge sort luôn đảm bảo O(n log n) với mọi đầu vào.
  • Các chỉ số cho thấy số lần so sánh ổn định bất kể thứ tự ban đầu.
  • Chạy hoàn toàn trên trình duyệt của bạn. Không cần đăng ký, không tải lên.

Câu hỏi thường gặp

Merge sort là gì?

Merge sort chia mảng làm đôi theo đệ quy cho đến khi mỗi phần chỉ còn một phần tử, sau đó gộp các phần lại theo thứ tự đã sắp xếp.

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

O(n log n) trong cả trường hợp tốt nhất, trung bình và xấu nhất. Thành phần log n đến từ độ sâu chia đôi, còn n đến từ việc gộp ở mỗi tầng.

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

Có — khi gộp, các phần tử bằng nhau sẽ ưu tiên lấy phần tử từ nửa bên trái trước, giữ nguyên thứ tự ban đầu.

Nhược điểm của merge sort là gì?

Nó cần thêm O(n) bộ nhớ cho các vùng đệm gộp, không giống các thuật toán sắp xếp tại chỗ (in-place) như heap sort hay quicksort.

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

Trình trực quan hóa Merge Sort mô phỏng quá trình chia để trị (divide-and-conquer) của merge sort: chia mảng thành các nửa theo đệ quy rồi gộp lại theo thứ tự đã sắp xếp. Công cụ minh họa thời gian chạy O(n log n) được đảm bảo và tính ổn định (stable) trong thứ tự sắp xếp.

Tính năng

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

Theo dõi quá trình chia đệ quy và trộn các nửa đã sắp xếp.

Độ phức tạp

Thời gian: O(n log n) trong mọi trường hợp. Không gian: O(n) phụ. Ổn định; không tại chỗ.

Riêng tư 100%

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

Ví dụ

Input

[38, 27, 43, 3]

Output

split → [27,38] & [3,43]; merge → [3, 27, 38, 43] (sorted)

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

  1. 1

    Đảm bảo O(n log n)

    Xem lý do merge sort tránh được trường hợp xấu nhất O(n²) của quicksort.

  2. 2

    Sắp xếp ổn định

    Quan sát các khóa bằng nhau vẫn giữ nguyên thứ tự đầu vào.

  3. 3

    Sắp xếp ngoài / danh sách liên kết

    Hiểu tại sao merge sort phù hợp với danh sách liên kết và sắp xếp ngoài (external sorting).

Tóm tắt

Công cụ trực quan hóa merge sort của Zerethon mô phỏng thuật toán chia để trị ngay trên trình duyệt, chia mảng đệ quy rồi trộn các nửa đã sắp xếp lại với nhau. Merge sort chạy với độ phức tạp thời gian O(n log n) trong cả trường hợp tốt nhất, trung bình và xấu nhất, sử dụng O(n) không gian phụ; nó ổn định (stable) nhưng không tại chỗ (not in-place). Độ phức tạp O(n log n) được đảm bảo giúp nó trở thành lựa chọn đáng tin cậy cho dữ liệu lớn và danh sách liên kế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 Merge 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í