私は、a_1 <a_2 <... <a_n、およびb_1 <b_2<...<b_nの形式のJavaでサイズ2nのxsayと呼ばれる半順序集合をシミュレートしようとしています。
反復を実行してランダムな線形拡大を取得し、各オブジェクトの「サイズ」を比較します。2つの隣接する位置を切り替えることができる場合は、切り替えます。そうでない場合は、新しい順序で終了します。たとえば、x [i]=a_kおよびx[i+ 1] = b_k切り替えますが、x [i]=a_kおよびx[i+ 1] = a_(k + 1)の場合は切り替えません。(本質的に、これはKarzanov Khachiyanチェーンです)。
私は当初、x [] [] = {a_1 []、...、b_1 []、...}、たとえばa_1 = {a、1}の配列の配列を使用することを考えました。ここで、値を比較できます。簡単に切り替えることができます。今、私はこれを行う他の方法を考えようとしています。以前の質問から、これは特に効率的またはエレガントな方法ではないことがわかります。誰か提案はありますか?