Sắp Xếp Trộn (Tree Visualization)

Trực quan hoá quá trình Tách (Divide) và Gộp (Conquer) trên Cây Đệ Quy

Chưa sắp xếp
Đang xét (Divide)
Đang so sánh
Đã sắp xếp (Merge)
Bước: 0
Pseudocode (Merge Sort)

function mergeSort(arr, left, right) {
if (left >= right) return; // Base case (Lá)
let mid = Math.floor((left + right) / 2);
// CHIA ĐỂ TRỊ (Divide)
mergeSort(arr, left, mid); // Trái
mergeSort(arr, mid + 1, right); // Phải
// GỘP (Conquer/Merge)
merge(arr, left, mid, right);
}
function merge(arr, left, mid, right) {
let temp = [], i = left, j = mid + 1;
while (i <= mid && j <= right) {
if (arr[i] <= arr[j]) temp.push(arr[i++]);
else temp.push(arr[j++]);
}
// Copy phần còn lại...
for (let k = 0; k < temp.length; k++) {
arr[left + k] = temp[k]; // Ghi vào mảng cha
}
}
Nhật ký Call Stack SẴN SÀNG
Hệ thống đang chờ lệnh...