8
Tốc độ:
600ms
Sẵn sàng
So sánh:
0
Tráo đổi:
0
Chưa xét
Vị trí i (a[i])
Vị trí j (a[j])
Tráo đổi (Lướt đan chéo)
Đã đúng vị trí
Giải thích bước hiện tại
Nhấn nút Chạy hoặc Bước kế tiếp để bắt đầu quá trình mô phỏng thuật toán.
Thuật Toán Tráo Đổi (Pascal) 1..n
for i := 1 to n-1 do
Dòng 1
for j := i+1 to n do
Dòng 2
if a[i] > a[j] then
Dòng 3
DoiCho(a[i], a[j]);
Dòng 4
Tiến Trình Thuật Toán
Tiến độ thực thi:
0 / 0 bước
Nhật ký các thao tác gần nhất:
Chưa có nhật ký nào
Chi Tiết Thuật Toán Sắp Xếp Bằng Tráo Đổi (Exchange Sort)
Nguyên lý hoạt động (Chỉ số từ 1 đến n)
Thuật toán duyệt lần lượt vị trí i từ 1 tới n-1.
Với mỗi vị trí i, thuật toán so sánh phần tử a[i] với tất cả các phần tử a[j] đứng sau nó (với j chạy từ i+1 đến n).
- Nếu gặp
a[i] > a[j], tiến hành đổi chỗ ngay lập tức hai phần tử này. - Sau khi vòng lặp
jkết thúc, phần tử nhỏ nhất trong đoạn từiđếnnchắc chắn đã nằm đúng vị trí tạia[i]. - Quá trình lặp lại cho đến khi toàn bộ mảng được sắp xếp tăng dần.
Đánh giá Độ Phức Tạp
Số phép so sánh
O(n²)
N*(N-1)/2 phép so sánh
Độ phức tạp bộ nhớ
O(1)
Sắp xếp tại chỗ (In-place)
Lưu ý: Thuật toán tráo đổi trực tiếp này gần giống với Bubble Sort hoặc Selection Sort đơn giản, thích hợp cho việc giảng dạy nhập môn lập trình Pascal / C++.