1. Nguyễn Ngọc Dũng - HCMUS
Quick Sort
I. Tư tưởng thuật toán
+ Thuật toán Quick Sort chia không gian cần sắp xếp thành 2
không gian con là không gian con thứ 1 và không gian con thứ
2.
+ Không gian con thứ 1: tất cả các phần tử thuộc không gian
này đều nhỏ hơn tất cả các phần tử thuộc không gian con 2.
+ Nếu không gian con thứ 1 có nhiều hơn 1 phần tử thì sắp
xếp không gian con này bằng thuật toán Quick Sort.
+ Nếu không gian con thứ 2 có nhiều hơn 1 phần tử thì sắp
xếp không gian con này bằng thuật toán Quick Sort.
II. Chạy từng bước (Debug)
+ Lưu ý: Các bạn nên download về xem. Vì trong slide này có
chứa animation. Do mình ko có thời gian làm file excel.
Link: Quick sort debug – animated from nndung179
III. Cài đặt
https://ilaptrinh.wordpress.com/ Page 1
2. Nguyễn Ngọc Dũng - HCMUS
IV. Chứng minh độ phức tạp của thuật toán
+ Độ phức tạp của thuật toán Quick Sort phụ thuộc vào cách
chọn Pivot.
1. Trường hợp tốt nhất của Quick Sort – Pivot nằm ở vị trí
medium
+ Ở đây tôi lấy mốc là mid là phần tử nằm ở giữa => Lúc này
bài toán chứng minh này trở thành chứng minh độ phức tạp của
MergeSort
- Mảng 1 và mảng 2 sẽ có kích thước bằng nhau
https://ilaptrinh.wordpress.com/ Page 2
3. Nguyễn Ngọc Dũng - HCMUS
2. Trường hợp xấu nhất của Quick Sort – Pivot nằm ở vị trí
min, max
+ Ở đây tôi lấy mốc là vị trí đầu hoặc cuối.
- Mảng 1 có 1 phần tử
- Mảng 2 sẽ có (độ dài mảng – 1)
https://ilaptrinh.wordpress.com/ Page 3