Stackoverflow hakkında bu soruyu zaten sordum , ama belki bu site için daha uygundur.
Problem şu:
N çift işaretsiz tamsayı var. Onları sıralamam lazım. Çiftlerin bitiş vektörü, her çiftteki ilk sayıya gittikçe azalmadan ve her çiftteki ikinci sayıya göre artmayacak şekilde sıralanmalıdır. Her çift, birinci ve ikinci elemanların herhangi bir noktada değiştirilmesini sağlayabilir. Bazen çözüm yoktur, o zaman bir istisna atmam gerekiyor.
Misal:
in pairs:
1 5
7 1
3 8
5 6
out pairs:
1 7 <-- swapped
1 5
6 5 <-- swapped
8 3 <-- swapped
^^ Çiftleri değiştirmeden çözümü oluşturmak imkansızdır. Böylece (7, 1), (3, 8) ve (5, 6) çiftlerini değiştirip sonucu oluşturuyoruz. veya
in pairs:
1 5
6 9
out:
not possible
Teşekkürler
Düzenle:
SO'dan Tom Sirgedas en iyi çözümü önerdi . Uygulanması gerçekten kolaydır ve O (log (n) * n) içinde çalışır. Yanıtlarınız ve ilginiz için hepinize teşekkür ederim. Gerçekten mjqxxxx analiz zevk.