Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
1,72 MB
Nội dung
CH NG 3ƯƠ
CÁC THU T TOÁN S P X PẬ Ắ Ế
MỤC TIÊU
Khái niệm sắp xếp
Phát biểu bài toánsắp xếp
Sắp xếp trong và sắpxếp ngoài
Các phương pháp sắpxếp đơn giản
Phương pháp đổi chỗ liên tiếp
Phương pháp lựa chọn
Phương pháp chèn
Phương pháp phân đoạn – Quick Sort
Phương pháp vun đống – Heap Sort
Phương pháp sắpxếp trộn
KHÁI NIỆM SẮP XẾP
Đặt vấn đề
Cho dãy số
Cho danh sách tên học sinh
81 52 73 21 44
81 73 52 44 21
Hùng
Thắng
An
Bình
Hoàng
An
Bình
Hoàng
Hùng
Thắng
21 44 52 73 81
KHÁI NIỆM SẮPXẾP (TT)
Khái niệm
Sắp xếp là việc biến đổi vị trí của một tập đối
tượng theo một trật tự mới nhằm thỏa mãn
một mục đích.
Mục đích
Giúp việc tìm kiếm được thực hiện nhanh hơn
Sắp thứ tự để in bảng biểu
BÀI TOÁNSẮP XẾP
Ví dụ: Bài toánsắpxếp dãy số tăng dần
Đầu vào: 7 3 8 1 5
Đầu ra: 1 3 5 7 8
Đầu vào: Dãy n đối tượng, mỗi đối
tượng có một khóa sắpxếp
Đầu ra: Dãy n đối tượng được sắpxếp theo trật tự của khóa.
BÀI
TOÁN
SẮP XẾP TRONG VÀ SẮPXẾP NGOÀI
Sắp xếp trong:
Dãy đối tượng được sắpcó mặt đầy đủ ở bộ
nhớ trong (RAM).
Sắp xếp một mảng số, hoặc một danh sách
tuyến tính – Sắp tại chỗ
Sắp xếp ngoài:
Dãy đối tượng được sắp chưa có mặt đầy ở bộ
nhớ trong
Sắp xếp dữ liệu được lưu trong tệp.
CÁC THUẬTTOÁNSẮPXẾP HAY GẶP
Ba thuậttoánsắpxếp đơn giản
Sắp xếp nổi bọt (Bubble Sort)
Sắp xếp lựa chọn (Selection Sort)
Sắp xếp chèn (Insertion Sort)
Thuật toánsắpxếp phân đoạn (Quick Sort)
Thuật toánsắpxếp vun đống (Heap Sort)
Thuật toánsắpxếp trộn (Merge Sort)
Ý tưởng giải thuật
Dựa vào việc so sánh và đổi chỗ (nếu cần) các
phần tử kế tiếp trong dãy đối tượng cần sắp
Ví dụ
Cho dãy X có 5 số nguyên (n=5) như sau
Yêu cầu sắpxếp dãy số theo chiều tăng dần
THUẬT TOÁNSẮPXẾP NỔI BỌT
X0 X1 X2 X3 X4
5 -1 7 3 -4
THUẬT TOÁNSẮPXẾP NỔI BỌT
Cách làm: duyệt và so sánh các cặp phần tử kế tiếp
của dãy, giả sử là Xj và Xj+1, nếu trái thứ tự thì đổi chỗ
X0 X1 X2 X3 X4
5 -1 7 3 -4
-1 5 7 3 -4
-1 5 7 3 -4
-1 5 3 7 -4
-1 5 3 -4 7
Nhận xét
Sau lần duyệt vừa rồi ta thấy phần tử lớn nhất được
chuyển về cuối dãy, nghĩa là nó đứng đúng vị trí
Các phần tử còn lại vẫn chưa đúng thứ tự
Làm thế nào đây?
THUẬT TOÁNSẮPXẾP NỔI BỌT
X0 X1 X2 X3 X4
-1 5 3 -4 7
-1 5 3 -4 7
-1 3 5 -4 7
-1 3 -4 5 7
[...]... X1 -1 7 -4 5 Yêu cầu sắpxếp dãy số theo chiều tăng dần THUẬT TOÁNSẮPXẾP CHÈN Bài toán thể hiện ý tưởng: Cho dãy được sắp tăng dần -5 Chèn số -5 -1 1 2 4 vào dãy -1 2 4 2 4 1 -5 -1 1 THUẬT TOÁNSẮPXẾP CHÈN Đưa ý tưởng vào bài toán sắp xếp: Xem dãy cần sắp gồm 2 dãy nối tiếp Dãy trái (dãy đích) gồm các phần tử được sắp, dãy phải (dãy nguồn) là các phần tử chưa được sắp X0 X1 X2 X3 X4 3... Sắpxếp dãy theo chiều tăng dần bằng thuậttoán nổi bọt Nhập vào một dãy n số nguyên (0 . trong
Sắp xếp dữ liệu được lưu trong tệp.
CÁC THUẬT TOÁN SẮP XẾP HAY GẶP
Ba thuật toán sắp xếp đơn giản
Sắp xếp nổi bọt (Bubble Sort)
Sắp xếp lựa. NG 3ƯƠ
CÁC THU T TOÁN S P X PẬ Ắ Ế
MỤC TIÊU
Khái niệm sắp xếp
Phát biểu bài toán sắp xếp
Sắp xếp trong và sắp xếp ngoài
Các phương pháp sắp xếp đơn