Xem xét vấn đề sau.Phân tách ổn định cho hai loại phần tử trong một mảng
Chúng tôi được cung cấp một loạt các phần tử thuộc về một trong hai lớp: màu đỏ hoặc màu xanh dương. Chúng ta phải sắp xếp lại các phần tử của mảng sao cho tất cả các phần tử màu xanh xuất hiện đầu tiên (và tất cả các phần tử màu đỏ đều theo sau). Việc sắp xếp lại phải được thực hiện là thời trang ổn định, có nghĩa là thứ tự tương đối của các yếu tố màu xanh phải được bảo quản (giống với màu đỏ).
Có thuật toán thông minh nào có thể thực hiện sắp xếp lại ở trên không?
Một giải pháp không đúng chỗ là, tất nhiên, đơn giản.
Giải pháp rõ ràng tại chỗ sẽ áp dụng bất kỳ thuật toán phân loại ổn định nào cho mảng. Tuy nhiên, bằng cách sử dụng một thuật toán phân loại chính thức trên một mảng trực quan cảm thấy giống như một overkill, đặc biệt là có tính đến thực tế là chúng tôi chỉ giao dịch với hai loại yếu tố.
Bất kỳ ý tưởng nào được đánh giá cao.
Cảm ơn. Thật không may, bài viết này chỉ có thể đăng ký, nhưng ít nhất bây giờ tôi biết rằng nó là 1) có thể, 2) không tầm thường :) – AnT
Nó có sẵn miễn phí từ CiteSeer: http://citeseerx.ist.psu.edu/ viewdoc/summary? doi = 10.1.1.25.5554 –
@Ants Aasma: Cảm ơn bạn đã liên kết. Tôi đã cập nhật câu trả lời với điều đó. –