ここに状況があります。例えば、私は、このような構造(コードが簡略化される)を有する:ドミノのような複雑なオブジェクトをソートする必要があります
class Dominoe
{
ctor Dominoe(left, right)
string LeftSide;
string RightSide;
}
およびIは、データを持っている、幾分のように:
Dominoe("2", "3"), Dominoe("1", "2"), Dominoe("4", "5"), Dominoe("3", "4")
Iは、ドミノに隙間が存在しないことを知っています、繰り返さない。 このコレクションを注文する必要があるので、すべてのRightSideは適切なLeftSideに接続されます。同様に:
Dominoe("1", "2"), Dominoe("2", "3"), Dominoe("3", "4"), Dominoe("4", "5")
数値 - 数値ではありません。ちょっと手掛かりが必要です。
今私は2つのステップでこの作業を行っています。 Primary - 私はエントリーポイントを探しています。 LeftSideを持っているドミノは、他のドミノの右サイドには表示されません。その後、私は0のインデックスアイテムでそれを切り替えます。第二に、私は、私のエントリードミノのRightSideと同じようにLeftSideを持っている次のドミノを探しています。
私はC#でこれをやっていますが、これは本当に問題ではありません。
問題は - 私はそれが最良のアルゴリズムだとは思わない。どんなアイデアも素晴らしいでしょう。どうも。
EDITED!
数字について話すのが悪かったです。
トレブルカード用にドミノを変更しましょう。
だから、のようになります:あなたはあなたのソリューションが動作するあなたのカードの膨大な量を持っていない限り
TravelCard ("Dublin", "New York"), TravelCard ("Moscow", "Dublin"), TravelCard ("New York", "Habana")
は、あなたが本当にSORT必要がありますか、それとも特定の状況にBEST FITを見つけますか? –
作業コードをお持ちの場合は、http://codereview.stackexchange.com/ – juharr
に投稿してください。コードは重要ではありません。コンセプトはもっと必要です。質問を1分で更新します。 – Kindzoku