Thứ nhất, câu trả lời này là chi tiết của một con tàu tư tưởng hơn là một giải pháp concete.
OK, vì vậy bạn có danh sách 3 mục (A1, A2, A3), nơi bạn muốn A1 ở đâu đó trong 1/3 đầu tiên của danh sách đích, A2 ở 1/3 thứ hai của mục tiêu danh sách, và A3 trong 1/3 thứ ba. Tương tự như vậy bạn muốn B1 nằm trong 1/2 đầu tiên, v.v ...
Vì vậy, bạn phân bổ danh sách 10 dưới dạng mảng, sau đó bắt đầu với danh sách có nhiều mục nhất, trong trường hợp này C. Tính điểm nơi C1 nên giảm (1.5) Thả C1 ở vị trí gần nhất, (trong trường hợp này là 1 hoặc 2), sau đó tính nơi C2 sẽ giảm (3.5) và tiếp tục quá trình cho đến khi không còn Cs nữa.
Sau đó, đi kèm với danh sách có số lượng mục nhiều thứ hai. Trong trường hợp này, A. Tính nơi A1 đi (1.66), vì vậy hãy thử 2 trước. Nếu bạn đã đặt C1 ở đó, hãy thử 1. Làm tương tự cho A2 (4.66) và A3 (7.66). Cuối cùng, chúng tôi liệt kê B. B1 nên ở mức 2.5, vì vậy hãy thử 2 hoặc 3. Nếu cả hai được lấy, hãy thử 1 và 4 và tiếp tục di chuyển ra ngoài cho đến khi bạn tìm thấy một điểm trống. Làm tương tự cho B2.
Bạn sẽ kết thúc với một cái gì đó như thế này nếu bạn chọn con số thấp hơn:
C1 A1 C2 A2 C3 B1 C4 A3 C5 B2
hay này nếu bạn chọn số trên:
A1 C1 B1 C2 A2 C3 A3 C4 B2 C5
Điều này dường như hoạt động khá tốt đối với danh sách mẫu của bạn, nhưng tôi không biết nó sẽ mở rộng như thế nào với nhiều danh sách có nhiều mục. Hãy thử nó và cho tôi biết làm thế nào nó đi.
tôi shoulda có một mức độ CS :-) –
có vẻ với tôi rằng bạn không' chỉ đơn giản là muốn kết hợp chúng, bạn muốn chúng được kết hợp chúng lại với nhau một cách đồng đều như một dây kéo hoặc xe hơi kết hợp một cách lịch sự trên đường cao tốc. Tôi có đúng không? – sblundy
"xe hơi lịch sự hợp nhất trên đường cao tốc" - Tôi bị mất ... ??;) – GalacticCowboy