0
Tải bản đầy đủ (.ppt) (152 trang)

Sắp xếp nhanh

Một phần của tài liệu CHƯƠNG V: CÂY DOC (Trang 106 -123 )

CHƯƠNG VII: SẮP XẾP

CHƯƠNG VII: SẮP XẾP

7. Sắp xếp nhanh

Đánh giá và nhận xét

Có hướng tổng quát tốt

Sử dụng ít tài nguyên

Phép toán tích cực cũng là phép toán so sánh, thỏa mãn công thức truy hồi sau:

CN = 2CN/2 +N

Dễ dàng nhận được: CN = NlgN

Vấn đề chọn chốt.

Quyết định tính hiêêu quả

Cần chọn điểm chốt tốt hơn

Chọn ngẫu nhiên 03 phần tử trong dãy, sau đó chọn phần tử giữa của 03 phần tử này làm phân hoạch. Chẳng hạn số hạng trái , phải, giữa. Phương pháp này đảm bảo, trường hợp xấu nhất không thể xẩy ra.

8. Sắp xếp bằng cơ số

Ý tưởng

Áp dụng tư tưởng phân đoạn để sắp xếp dãy khóa là số tự nhiên theo thứ tự không giảm.

Sắp xếp bằng cơ số theo kiểu hoán vị các khóa

Ta có thể coi mỗi số nguyên là một dãy z bit đánh số từ 0 đến z-1.

Để phân đoạn ta có thể đưa các khóa có bít cao nhất bằng 0 về đầu dãy, những khóa có bit cao nhất bàng 1 về cuối dãy (vì những khóa bắt đầu bằng 0 ở bít cao nhất sẽ nhỏ hơn những khóa có bít cao nhất bằng 1).

Tiếp tục phân đoạn với hai đoạn dãy khóa, một đoạn có bít cao nhất bàng 1 và một đoạn có bít cao nhất bằng 0.

Ví dụ, dãy xuất phát là 1,3,7,6,,5,2,3,4,4,5,6,7 tương ứng với dãy 03 bit:

001 011 111 110 101 010 011 100 100 101 110 111

Phân đoạn dựa vào bit cao nhất ( bên trái cùng) 001 011 011 010 101 110 111 100 100 101 110 111

Pân đoạn dựa vào bít thứ 2 từ trái sang

001 011 011 010 101 101 100 100 111 110 110 111………. ……….

Tiếp tục phân đoạn dựa vào bit ở hàng đơn vị

001 010 011 011 100 100 101 101 110 110 111 111 111 111

Có thể thực hiêên với hêê cơ số khác bất kì

Đôê phức tạp thuâêt toán: Để phân đoạn bằng 1 bít thì cần Cn thời gian, nên thời gian phân đoạn bằng z bit se là C.N.z ( C là hằng số), vâêy trường hợp xấu thì đôê phức tạp thuâêt toán là O(N.z) còn trường hợp trung bình là O(N. min (z,lgN)

8. Sắp xếp bằng cơ số

Sắp xếp bằng cơ số

Sử dụng môêt thuâêt toán nào đó để sắp xếp dãy khóa tăng dần theo giá trị chữ số hàng đơn vị.

Sử dụng môêt thuâêt toán sắp xếp ổn định nào đó để sắp xếp dãy khóa tăng dần theo giá trị chữ số hàng chục.

Tiếp tục thực hiêên tương tự với chữ số hàng trăm, ngàn,…

Nhận xét và đánh giá

Có thể coi số chữ số của mỗi khóa là bằng nhau ( bổ sung các chữ số 0 vào bên trái mỗi số hạng còn thiếu).

Đôê phức tạp phụ thuôêc chủ yếu vào đôê phức tạp các thuâêt toán sắp xếp khác đã được lựa chọn.

9. Tính ổn định của thuật toán sắp xếp

Một phương pháp sắp xếp được gọi là ổn định nếu nó bảo toàn thứ tự bản ghi có khóa bằng nhau trong danh sách.

Trong số các thuật toán đã xét:

Các thuật toán sắp xếp nổi bọt, thuật toán sắp xếp chèn là những thuâth toán ổn định, các thuật toán còn lại là không ổn định.

Nói chung mọi phương pháp sắp xếp không ổn định đều có thể biến đổi để nó trở thành ổn định. Phương pháp chung là thêm một trường khóa chỉ số là thứ tự ban đầu của đối tượng. Khi đối sánh, nếu gặp các đối tượng có cùng khóa sắp xếp như nhau thì ta dựa vào thứ tự chỉ số để xếp 02 đối tượng đó theo thứ tự ban đầu.

Một phần của tài liệu CHƯƠNG V: CÂY DOC (Trang 106 -123 )

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×