17
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: [email protected] [email protected] n n

Thuat toan sap xep trao doi

Embed Size (px)

Citation preview

Page 1: Thuat toan sap xep trao doi

THUẬT TOÁN SẮP XẾPTHUẬT TOÁN SẮP XẾPBẰNG TRÁO ĐỔIBẰNG TRÁO ĐỔI

Lê Anh NhậtLê Anh Nhật

Email: [email protected]: [email protected]

Page 2: Thuat toan sap xep trao doi

22

1. Xác định bài toán1. Xác định bài toán

Input Dãy A gồm N số nguyên aDãy A gồm N số nguyên a11, a, a22, ..., a, ..., aNN..

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

Page 3: Thuat toan sap xep trao doi

33

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. ?

Page 4: Thuat toan sap xep trao doi

44

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 a1, a2, ..., aN;

Bước 2 M := N;

Bước 3Nế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;

Page 5: Thuat toan sap xep trao doi

55

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 ai > ai+1 thì đổi ai và ai+1 cho nhau;

Bước 8 Quay lại bước 5;

Page 6: Thuat toan sap xep trao doi

66

4. Thuật toán sơ đồ khối 4. Thuật toán sơ đồ khối

Nhập: N, a1, a2, ..., aN

M := N

M < 2

S

M := M-1; i := 0;Đưa dãy A ra

End.

Begin

Đ

i := i+1;i > M

ai > ai+1 Tráo đổi ai và ai+1

Đ

S

S

Đ

Page 7: Thuat toan sap xep trao doi

77

5. Ví dụ mô phỏng 5. Ví dụ mô phỏng

6 2 5 3 7 8 10 7 12 4

Cho dãy số có 10 phần tử:

Sắp xếp dãy trên tăng dần theo thật toán tráo đổi?

Page 8: Thuat toan sap xep trao doi

88

5. Ví dụ mô phỏng 5. Ví dụ mô phỏng

6 2 5 3 7 8 10 7 12 4

M = 9;

2 65 6 63 7 10 4 12

Page 9: Thuat toan sap xep trao doi

99

5. Ví dụ mô phỏng 5. Ví dụ mô phỏng

M = 8;

2 5 3 6 7 8 7 10 4 123 5 7 8 4 10

Page 10: Thuat toan sap xep trao doi

1010

5. Ví dụ mô phỏng 5. Ví dụ mô phỏng

M = 7;

2 3 5 6 7 7 8 4 10 124 8

Page 11: Thuat toan sap xep trao doi

1111

5. Ví dụ mô phỏng 5. Ví dụ mô phỏng

M = 6;

2 3 5 6 7 7 4 8 10 124 7

Page 12: Thuat toan sap xep trao doi

1212

5. Ví dụ mô phỏng 5. Ví dụ mô phỏng

M = 5;

2 3 5 6 7 4 7 8 10 124 7

Page 13: Thuat toan sap xep trao doi

1313

5. Ví dụ mô phỏng 5. Ví dụ mô phỏng

M = 4;

2 3 5 6 4 7 7 8 10 124 6

Page 14: Thuat toan sap xep trao doi

1414

5. Ví dụ mô phỏng 5. Ví dụ mô phỏng

M = 3;

2 3 5 4 6 7 7 8 10 124 5

Page 15: Thuat toan sap xep trao doi

1515

5. Ví dụ mô phỏng 5. Ví dụ mô phỏng

M = 2;

2 3 4 5 6 7 7 8 10 12

Page 16: Thuat toan sap xep trao doi

1616

5. Ví dụ mô phỏng 5. Ví dụ mô phỏng

M = 1;

2 3 4 5 6 7 7 8 10 12

Ta được dãy đã sắp xếp:

Kết thúc.

Page 17: Thuat toan sap xep trao doi

1717

6. Bài tập6. Bài tập

1.1. Cho dãy số có 13 số: 3, 6, 2, 5, 13, 21, 1, 9, Cho dãy số có 13 số: 3, 6, 2, 5, 13, 21, 1, 9, 10, 14, 15, 2, 8.10, 14, 15, 2, 8.Áp dụng thuật toán trên để sắp xếp dãy trên Áp dụng thuật toán trên để sắp xếp dãy trên giảm dần?giảm dần?

2.2. Từ thuật toán trên, sử dụng ngôn ngữ lập Từ thuật toán trên, sử dụng ngôn ngữ lập trình mà bạn biết để lập trình bài toán tổng trình mà bạn biết để lập trình bài toán tổng quát đó?quát đó?