THUẬT TOÁN SẮP XẾP
THUẬT TOÁN SẮP XẾP
BẰNG TRÁO ĐỔI
BẰNG TRÁO ĐỔI
Lê Anh Nhật
Lê Anh Nhật
Email:
Email:
2
1. Xác định bài toán
1. Xác định bài toán
Input
Dãy A gồm N số nguyên a
Dãy A gồm N số nguyên a
1
1
, a
, a
2
2
, ..., a
, ..., a
N
N
.
.
Dãy A được sắp xếp lại
Dãy A được sắp xếp lại
thành dãy không giảm.
thành dãy không giảm.
Output
3
2. Ý tưởng
2. Ý tưởng
•
Với mỗi cặp số hạng đứng liền kề
trong dãy, nếu số trước lớn hơn số
sau ta đổi chỗ chúng cho nhau.
•
Việc đó được lặp lại cho đến khi
không có sự đổi chỗ nào xảy ra
nữa.
?
4
3. Thuật toán liệt kê
3. Thuật toán liệt kê
Bước 1
Nhập N, các số hạng a
1
, a
2
, ..., a
N
;
Bước 2 M := N;
Bước 3
Nếu M<2 thì đưa ra dãy A đã được
sắp xếp, rồi kết thúc;
Bước 4 M := M-1; i := 0;
5
3. Thuật toán liệt kê
3. Thuật toán liệt kê
Bước 5 i := i + 1;
Bước 6 Nếu i > M thì quay lại bước 3;
Bước 7
Nếu a
i
> a
i+1
thì đổi a
i
và a
i+1
cho nhau;
Bước 8 Quay lại bước 5;
6
4. Thuật toán sơ đồ khối
4. Thuật toán sơ đồ khối
Nhập: N, a
1
, a
2
, ..., a
N
M := N
M < 2
S
M := M-1; i := 0;
Đưa dãy A ra
End.
Begin
Đ
i := i+1;
i > M
a
i
> a
i+1
Tráo đổi a
i
và a
i+1
Đ
S
S
Đ