CƠNG 3
CÁC THUT TOÁN SẮP XẾP
GV Th.S. Thiều Quang Trung
Trường Cao đẳng Kinh tế Đối ngoại
2
Chọn trực tiếp - Selection Sort
1
Chèn trực tiếp - Insertion Sort
2
Đổi chỗ trực tiếp - Interchange Sort
3
Nổi bọt - Bubble Sort
4
Sắp xếp dựa trên phân hoạch - Quick Sort
5
Trộn trực tiếp - Merge Sort
6
Nội dung
GV. Thiều Quang Trung
3
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
4
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
5
Ý 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ử ailuô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 vvị 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
y hiện hành chỉ còn một phần tử.
Chọn trực tiếp - Selection Sort
GV. Thiều Quang Trung