Sắp Xếp Chèn

Mô phỏng thuật toán tương tác trực quan nâng cao (Insertion Sort)

Bản Cập Nhật Nâng Cao
Trạng thái mô phỏng
Đang dừng
Biến Key tạm: -
Chưa xử lý
Đã có thứ tự
Vị trí ô trống (Hole)
Key lơ lửng phía trên
Đang so sánh / Dịch chuyển / Đang xét
TIẾN ĐỘ THUẬT TOÁN Bước: 0 / 0
0.5s / bước
12 phần tử
Chi tiết thao tác hiện tại

Khởi tạo mảng

Bắt đầu mô phỏng thuật toán...

Các biến lưu trữ & Chỉ số đo lường

Biến i - Chỉ số ngoài
Biến j - Chỉ số quét trong
Biến key - Giá trị chèn
Số lần so sánh giữa các cặp phần tử: 0
Số lần dịch chuyển / Ghi đè bộ nhớ: 0

Mã Giả Thuật Toán (Pseudocode)

Algorithm
0: insertionSort(arr, n):
1: for i = 2 to n:
2: key = arr[i]
3: j = i - 1
4: while j >= 1 and arr[j] > key:
5: arr[j + 1] = arr[j]
6: j = j - 1
7: arr[j + 1] = key
8: // Hoàn thành mảng được sắp xếp

Phân Tích Thuật Toán

Ý tưởng cốt lõi: Thuật toán xây dựng một phân đoạn đã sắp xếp ở đầu mảng. Với mỗi phần tử mới (key), nó duyệt ngược về trước để tìm "vị trí chính xác" bằng cách dịch chuyển các phần tử lớn hơn sang bên phải một đơn vị, sau đó "chèn" key vào đúng lỗ trống đó.
ĐỘ PHỨC TẠP THỜI GIAN Best Case: O(n) Mảng đã có thứ tự sẵn Worst Case: O(n²) Mảng có thứ tự đảo ngược
ĐỘ PHỨC TẠP KHÔNG GIAN Space: O(1) Sắp xếp tại chỗ (In-place) TÍNH ỔN ĐỊNH Có (Stable)