Xem mẫu

CHƯƠNG 3
CÁC THUẬT TOÁN SẮP XẾP
GV Th.S. Thiều Quang Trung
Bộ môn Khoa học cơ bản
Trường Cao đẳng Kinh tế Đối ngoại

Nội dung

1
2
3
4
5
6

• Chọn trực tiếp - Selection Sort
• Chèn trực tiếp - Insertion Sort

• Đổi chỗ trực tiếp - Interchange Sort
• Nổi bọt - Bubble Sort
• Sắp xếp dựa trên phân hoạch - Quick Sort
• Trộn trực tiếp - Merge Sort
GV. Thiều Quang Trung

2

Các khái niệm
• Sắp xếp là gì ?
– Sắp xếp là quá trình xử lý một danh sách các phần
tử (hoặc các mẫu tin) để đặt chúng theo một thứ
tự thỏa mãn một tiêu chuẩn nào đó.

• Khái niệm nghịch thế:
– Xét một mảng các số a0, a1, … ,aN
– Giả sử xét mảng có thứ tự tăng dần, nếu có i < j và
ai > aj, thì ta gọi đó là nghịch thế.

GV. Thiều Quang Trung

3

Các khái niệm
• Để sắp xếp một mảng => tìm cách giảm số các
nghịch thế trong mảng này bằng cách hoán vị
các cặp phần tử.
• Cho trước một dãy số a1, a2, … aN được lưu trữ
trong cấu trúc dữ liệu mảng.
Ví dụ: int a[N];
=> Chọn lựa một số phương pháp để sắp xếp.

GV. Thiều Quang Trung

4

Chọn trực tiếp - Selection Sort
• Ý tưởng: thực hiện N-1 lần việc đưa phần tử nhỏ
nhất trong dãy hiện hành về vị trí đứng ở đầu dãy
• Nhận xét: nếu mảng có thứ tự thì phần tử ai luôn
là min (ai,ai+1,..,an-1) => Ý tưởng của thuật toán
chọn trực tiếp:
– Chọn phần tử nhỏ nhất trong N phần tử ban đầu, đưa
phần tử này về vị trí đứng đầu dãy hiện hành;
– Sau đó không quan tâm phần tử này nữa, xem dãy hiện
hành chỉ còn N-1 phần tử của dãy ban đầu, bắt đầu từ
vị trí thứ 2;
– Lặp lại quá trình trên cho dãy hiện hành … cho đến khi
dãy hiện hành chỉ còn một phần tử.
GV. Thiều Quang Trung

5

nguon tai.lieu . vn