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.
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 từng phần tử được chèn vào phần bên trái đã sắp xếp.
- 2 Dùng Step để tiến từng bước dịch chuyển một và xem phần tử khóa trượt vào đúng vị trí.
- 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ả (pseudocode) được tô sáng cùng bộ đếm so sánh / ghi theo thời gian thực.
Vì sao dùng công cụ này
- Xem cách phần bên trái luôn được giữ sắp xếp trong khi mỗi phần tử khóa mới dịch chuyển vào đúng vị trí.
- Xem từng bước dịch chuyển và so sánh — lý tưởng để hiểu vòng lặp while bên trong.
- Các chỉ số cho thấy vì sao insertion sort chạy nhanh trên dữ liệu gần như đã sắp xếp (gần O(n)).
- 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
Insertion sort là gì?
Insertion sort xây dựng mảng đã sắp xếp từng phần tử một: thuật toán lấy phần tử tiếp theo (gọi là khóa) và dịch chuyển các phần tử lớn hơn sang phải cho đến khi khóa nằm đúng vị trí của nó.
Độ phức tạp thời gian của insertion sort là gì?
Trung bình và trường hợp xấu nhất là O(n²), nhưng trường hợp tốt nhất là O(n) khi dữ liệu đầu vào đã được sắp xếp sẵn. Đây là một trong những thuật toán nhanh nhất cho các mảng nhỏ hoặc gần như đã sắp xếp.
Insertion sort có ổn định (stable) không?
Có — thuật toán chỉ dịch chuyển các phần tử lớn hơn khóa một cách nghiêm ngặt, do đó các giá trị bằng nhau vẫn giữ nguyên thứ tự tương đối.
Vì sao insertion sort được dùng bên trong các thuật toán sắp xếp khác?
Các thuật toán sắp xếp lai như Timsort và introsort chuyển sang dùng insertion sort cho các mảng con nhỏ vì chi phí thấp của nó vượt trội hơn chia để trị (divide-and-conquer) khi kích thước dưới một ngưỡng nhất định.
Trình trực quan hóa Insertion Sort là gì?
Trình trực quan hóa Insertion Sort mô phỏng cách thuật toán insertion sort mở rộng dần phần đầu đã sắp xếp bằng cách lấy từng phần tử tiếp theo và dịch chuyển các phần tử lớn hơn sang phải cho đến khi phần tử khóa nằm đúng vị trí. Công cụ hiển thị số lần so sánh và số lần ghi, cho thấy vì sao insertion sort gần như tuyến tính (near-linear) trên dữ liệu đã gần như được sắp xếp sẵn.
Tính năng
Hoạt ảnh từng bước
Xem từng phần tử được chèn vào dãy con đã sắp xếp đang ngày càng mở rộng.
Độ phức tạp
Thời gian: tốt nhất O(n) (gần như đã sắp xếp), trung bình/xấu nhất O(n²). Bộ nhớ: O(1). Ổn định, tại chỗ.
Riêng tư 100%
Chạy hoàn toàn trong trình duyệt của bạn — không có gì được tải lên.
Ví dụ
Input
[5, 2, 4, 1]
Output
insert 2 → [2,5]; 4 → [2,4,5]; 1 → [1,2,4,5] (sorted)
Trường hợp sử dụng
-
1
Sắp xếp dữ liệu nhỏ / gần như đã sắp xếp
Xem lý do insertion sort được ưu tiên cho các mảng rất nhỏ hoặc gần như đã có thứ tự.
-
2
Hiểu về tính ổn định
Quan sát cách các phần tử bằng nhau vẫn giữ nguyên thứ tự ban đầu.
-
3
Khối xây dựng cho TimSort
Tìm hiểu bước chèn được sử dụng bên trong các thuật toán sắp xếp lai như TimSort.
Công cụ trực quan hóa sắp xếp chèn (insertion sort) của Zerethon mô phỏng thuật toán ngay trong trình duyệt, xây dựng dần một dãy con đã sắp xếp bằng cách dịch các phần tử lớn hơn sang phải từng bước một. Insertion sort có độ phức tạp thời gian trung bình và xấu nhất là O(n²), O(n) với mảng gần như đã sắp xếp, và chỉ dùng thêm O(1) bộ nhớ; đây là thuật toán ổn định (stable) và tại chỗ (in-place), hiệu quả với dữ liệu đầu vào nhỏ hoặc gần như đã được sắp xếp.
- 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 — Introduction to Algorithms (CLRS) — MIT OpenCourseWare
- VisuAlgo — Sorting — VisuAlgo (NUS)
- Insertion 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 Insertion 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 →
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.