Giả sử tôi có một danh sách các thứ (số, để giữ mọi thứ đơn giản ở đây) và tôi có một hàm tôi muốn sử dụng để sắp xếp chúng bằng cách sử dụng SortBy. Ví dụ, sau đây sắp xếp một danh sách các số bằng chữ số cuối cùng:Phân loại ổn định, tức là phân loại tối thiểu
SortBy[{301, 201}, Mod[#,10]&]
Và hãy chú ý cách hai (ví dụ, tất cả) những con số có cùng chữ số cuối cùng. Vì vậy, nó không quan trọng mà trật tự chúng tôi trả lại cho họ. Trong trường hợp này Mathematica trả về chúng theo thứ tự ngược lại. Làm cách nào để đảm bảo rằng tất cả các mối quan hệ đều bị hỏng trong việc ưu tiên các mục được đặt hàng trong danh sách gốc?
(Tôi biết đó là loại tầm thường nhưng tôi cảm thấy như thế này đi lên theo thời gian vì vậy tôi nghĩ rằng nó sẽ là tiện dụng để có được nó trên StackOverflow. Tôi sẽ đăng bất cứ điều gì tôi đưa ra như là một câu trả lời nếu không có ai đánh bại tôi với nó.)
Cố gắng thực hiện điều này dễ tìm kiếm hơn: sắp xếp với ít nhiễu nhất, sắp xếp ít nhất số lần hoán đổi, tùy chỉnh vi phạm, phân loại với trao đổi tốn kém, phân loại ổn định.
PS: Nhờ Nicholas để chỉ ra rằng đây được gọi là sắp xếp ổn định. Nó ở trên đầu lưỡi tôi! Đây một đường link khác: http://planetmath.org/encyclopedia/StableSortingAlgorithm.html
Điều không được tìm kiếm ở đây thường chỉ được gọi là thuật toán sắp xếp ổn định? Xem: http://en.wikipedia.org/wiki/Sorting_algorithm#Stability –