Bài gi ảng của TS Nguyễn Nam Hồng.[r]
Trang 1Lecturer: PhD Ngo Huu Phuc
Tel: 0438 326 077 Mob: 098 5696 580 Email: ngohuuphuc76@gmail.com
C ấu trúc dữ liệu và giải thuật
Bài 6 Sắp xếp nhanh - Quick Sorts
Trang 2ội dung:
6.1 Thu ật toán QuickSort (6)
6.2 Ví d ụ về QuickSort (7)
6.3 Ho ạt động của QuickSort (6)
6.4 Hi ệu quả của QuickSort (6)
1 Intro to Algorithms Chapter 8 QuickSort.htm
2 Lecture 5 – quicksort.htm
3 Quick Sort.htm
4 Bài gi ảng của TS Nguyễn Nam Hồng
Trang 36.1 Thu ật toán QuickSort (1/6)
Gi ải thuật Quick-sort là
phương pháp sắp xếp dựa
trên chi ến lược chia để trị.
Gi ải thuật gồm các bước:
Phép chia : ch ọn ngẫu nhiên
m ột phần tử x làm khóa,
chia t ập dữ liệu S ban đầu
thành 3 ph ần:
L ch ứa các phần tử nhỏ hơn x
E ch ứa các phần tử bằng x
G ch ứa các phần tử lớn hơn x
Bước lặp : sắp xếp 2 tập L
và G
Hi ệu chỉnh lại các tập L, E
và G
x
x
x
Trang 4Các bước cơ bản của thuật toán:
Chia tập dữ liệu ban đầu thành 2 tập con:
sao cho, tất cả các phần tử bên trái nhỏ hơn tất
cả các phần tử bên phải
Sắp xếp 2 tập con một cách độc lập và nối chúng
lại với nhau:
như vậy, ta được dãy đã sắp xếp
Trang 56.1 Thu ật toán QuickSort (3/6)
Với mỗi tập con trên, mỗi tập chia thành 02 tập con nếu có thể
như vậy, ta có tối đa 04 tập con
tập các phần tử nhỏ nhất ở bên trái cùng, tập các phần tử lớn nhất ở bên phải cùng
Lặp lại quá trình trên cho đến khi tập chỉ có 1
phần tử
nối tất cả các tập với nhau ta được dãy đã sắp
xếp
Trang 6 Trên tập S, lấy mỗi phần tử y được lấy ra khỏi
tập
Đưa phần tử y vào tập L, E hay G, tùy thuộc
vào phép so sánh với khóa x
Với mỗi phép lấy 1 phần tử và đưa chúng vào tập tương ứng, độ phức tạp của phép toán đó là
O(1).
Như vậy, phép chia dữ liệu của thuật toán
QuickSort có độ phức tạp O(n).
Trang 76.1 Thu ật toán QuickSort (5/6)
7 4 9 6 2 → 2 4 6 7 9
Trang 8QuickSort được mô tả qua
cây nh ị phân:
M ỗi node biểu diễn một
l ần gọi đệ quy và lưu giữ:
Dãy chưa được sắp xếp và
khóa.
Dãy sau khi sắp xếp.
Gốc của cây là lần gọi đệ
quy đầu tiên
Các lá c ủa cây là lần gọi
ứng với dãy con có kích
thước 0 hoặc 1.
Trang 96.2 Ví d ụ về QuickSort (1/7)
Chọn khóa