Khi đọc về các thuật toán sắp xếp khác nhau, tôi đã thấy nó đề cập rằng một số là "ổn định" và một số thì không. Điều đó có nghĩa là gì, và sự đánh đổi nào có liên quan trên cơ sở đó khi chọn một thuật toán?
Khi đọc về các thuật toán sắp xếp khác nhau, tôi đã thấy nó đề cập rằng một số là "ổn định" và một số thì không. Điều đó có nghĩa là gì, và sự đánh đổi nào có liên quan trên cơ sở đó khi chọn một thuật toán?
Câu trả lời:
Một loại ổn định là một loại duy trì thứ tự ban đầu của bộ đầu vào, trong đó thuật toán so sánh không phân biệt giữa hai hoặc nhiều mục.
Xem xét một thuật toán sắp xếp sắp xếp các thẻ theo thứ hạng , nhưng không phù hợp. Loại ổn định sẽ đảm bảo rằng thứ tự ban đầu của thẻ có cùng thứ hạng được giữ nguyên; loại không ổn định sẽ không.
Các thuật toán ổn định bảo tồn thứ tự tương đối của các yếu tố.
Vì vậy, một thuật toán sắp xếp ổn định sẽ giữ nguyên thứ tự tương đối của các giá trị so sánh bằng nhau.
Hãy xem xét một thuật toán sắp xếp trong đó chúng tôi sắp xếp một tập hợp các điểm 2d dựa trên kích thước X của chúng.
Bộ sưu tập được sắp xếp: {(6, 3), (5, 5), (6, 1), (1, 3)}
Sắp xếp ổn định: {(1, 3), (5, 5), (6, 3), (6, 1)}
Sắp xếp thường xuyên: Hoặc {(1, 3), (5, 5), (6, 3), (6, 1)}
, hoặc{(1, 3), (5, 5), (6, 1), (6, 3)}
Đối với sự đánh đổi ... tốt, phân loại ổn định sẽ kém hiệu quả hơn, nhưng đôi khi bạn cần nó.
Ví dụ: khi người dùng nhấp vào tiêu đề cột để sắp xếp các giá trị trong giao diện người dùng, thật hợp lý khi hy vọng thứ tự sắp xếp trước đó của anh ta sẽ được sử dụng trong trường hợp các giá trị bằng nhau.