Sắp xếp tráo đổi¶
Tóm lược nội dung
Bài này trình bày thuật toán sắp xếp tráo đổi.
Bài toán và thuật toán sắp xếp¶
Tương tự bài học trước, ta chỉ xét bài toán đơn giản là sắp xếp mảng một chiều các số nguyên theo thứ tự tăng dần.
Về thuật toán, bài học này đề cập thuật toán sắp xếp tráo đổi.
Thuật toán sắp xếp tráo đổi¶
Ý tưởng¶
Ý tưởng chính của thuật toán sắp xếp tráo đổi là lặp lại nhiều lần thao tác so sánh phần tử đang xét với các phần tử theo sau nó và tráo đổi (hoán vị) sao cho phần tử nhỏ hơn lên trước và phần tử lớn hơn ra sau. Cụ thể như sau:
Thuật toán sắp xếp tráo đổi
Duyệt mảng A
từ vị trí 0
đến áp cuối bằng biến i
. Ứng với mỗi i
, thực hiện:
Duyệt mảng con từ vị trí i + 1
đến cuối mảng A
bằng biến j
. Ứng với mỗi j
, thực hiện:
So sánh và tráo đổi (hoán vị) hai phần tử A[i]
và `A[j] sao cho phần tử nhỏ hơn đứng trước và phần tử lớn hơn đứng sau.
Như vậy, sau mỗi lần duyệt của vòng lặp ngoài (biến i
), phần tử nhỏ nhất của mảng con, tính từ vị trí i
đến cuối mảng A
, sẽ được đưa về vị trí đầu của mảng con đó, cũng chính là vị trí i
.
Ví dụ¶
Lưu đồ thuật toán¶
Trực quan hóa thuật toán¶
Chương trình minh họa¶
Output:
Sơ đồ tóm tắt nội dung¶
Google Colab¶
Các đoạn mã trong bài này được đặt tại Google Colab để bạn có thể thử nghiệm theo cách của riêng mình.
Some English words¶
Vietnamese | Tiếng Anh |
---|---|
hoán vị (hai phần tử) | swap |
sắp xếp tráo đổi | exchange sort |
so sánh | compare |