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.
Code examples
Ready-to-copy reference implementations. Free to use in your own projects and assignments.
Cách dùng
- 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 Dùng Step để tiến từng bước so sánh gộp một lần.
- 3 Nhập các số của riêng bạn vào Custom input rồi nhấn Apply.
- 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
Đả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
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
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).
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
- MIT OCW 6.006 — Nhập môn Thuật toán (CLRS) — MIT OpenCourseWare
- VisuAlgo — Sắp xếp — VisuAlgo (NUS)
- Merge sort — 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 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
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ụ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.
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.